Why would I need to refactor anything in this situation in the first place?
In what situation? If you predict everything correctly, you don't have to, but I was referring that you don't have to have everything designed upfront, since refactor is much easier and safer than in other languages.
I wanted to make point that that #4 is not true.
Is that 1% not true or 99% not true?
Amortizing the up-front cost of design, into a continuous cost of refactoring every time the requirements change doesn’t make the original claim false.
You are still paying the price of rigidity.
Only if you choose to isolate all side effects from each other. Actually Haskell makes refactoring really easy, so you can adapt your implemention to changing requirements easily.