v3 has templatestudio integrated, so you can always edit templates, alter templatebindings files etc.
If the templates used are not of your liking, you still have to alter the templates, that's pretty trivial. However v3 has a flexible system to define attributes, interfaces and namespaces to entities (and attributes to all other elements for example, like fields), using macros, so you can define a lot more in the designer so if you needed template changes for that, you don't have to.
Also, all settings for code generation and frameworks in general is xml based now (the definitions of the settings And the values (values end up in the xml project file)). So it's easy to add custom settings to a framework which show up in the designer (e.g for a field, navigator etc.) and which can be utilized in the code generator. The generated code is now more controllable as you can exclude features you don't want (e.g. remoting) and you can also use this system for custom templates you write your own (so no more dreaded custom properties (which are still there btw) for controlling code gen
).
The project inner model is completely different, so people using .lpt templates will have some porting to do. I think it's easier to write code to the model now as the model is easier to access, and more utility methods are available in the project. As we use .lpt templates for nhibernate/ef/linqtosql templates, we are adding all kinds of methods (if they're not already there) to make writing templates consuming meta-data easier.