"Compiler error messages as I type" distract me from, well, typing. I can pause to think and then I get an error message for my still incomplete code. I cannot help but notice that and that interferes with the train of thought.
I have trouble with my keyboard lately (two keys do not produce reliable key press events) and only then I started to use CtrlN in vim to autocomplete.
The need of variable renaming is often related to variables in most mainstream languages having multiple roles due to side effects: on input an array has one meaning, after execution of some function the same array now has different meaning. I prefer not to do so and greatly prefer languages with controlled side effects.