Are there any reasons not enable SQLCMD-mode as default in SSMS?
Yes, I don't want to work in SQLCMD mode all the time
It suits you but not me

Irritating:


  Enabling SQLCMD mode turns off IntelliSense and the Transact-SQL debugger in the Database Engine Query Editor.


Dangerous?


  When executed from the command line, the sqlcmd utility permits full interaction with the operating system. When you use the Query Editor in SQLCMD Mode, you must be careful not to execute interactive statements. The Query Editor cannot respond to operating system prompts.


And some limitations of course...


  So no flow control or TSQL variable assignments with SQLCMD mode? This is a big disappointment. Not very many SQLCMD keywords are supported and no real flow control commands