How can I prevent SSMS from re-writing my code when saving a view?
Don't use the SSMS wizards. 

just type your CREATE VIEW dbo.Foo AS SELECT ... statement into a new query window and execute it. 

This will stop it rearranging the query syntax to semantically equivalent but worse performing alternatives.