So I have heard a lot of people who use CL talk about teaching the repl to be the program you need ...
That is incremental, interactive development using the REPL. I don't see the point of doing that because one has to keep track of the state of the REPL. I like immutability, so I don't like to mutate the REPL over and over. There is some obsession in the Emacs + SLIME + Common Lisp community over the ability to "send a region of text to a running REPL" in Emacs. I don't understand that obsession because that is essentially mutating the REPL's state. I easily get confused when I mutate state, especially in a long-running REPL.
... and being able to change the program while it's running.
That is hot code reloading. The Erlang and Elixir languages similarly support hot code reloading, but their programming language communities do not program by "teaching the REPL to be the program you need". Instead, during the development process, they start a new BEAM VM every time they test out their code. That just goes to show that the Common Lisp REPL development style is just a peculiar product of Lisp culture rather than something that is essential.
What do you think about those aspects using Emacs + SLIME
As explained above, I have no need for Emacs + SLIME when programming in Common Lisp. Emacs + SLIME is and should be an optional part of Common Lisp programming. Unfortunately, members of the old guard seem to believe that Emacs + SLIME are essential. In the long-term, this perceived Emacs + SLIME requirement is disadvantageous for Common Lisp, because the would-be beginners are faced with learning three things (Emacs + SLIME + Common Lisp) instead of just Common Lisp.
Note that these are my personal opinions. These are unpopular opinions that the old guard have difficulty in understanding.