Hi Taudris
For proper version controlling one shouldn't keep types in Composite.Generated.dll, but rather have them defined in own dlls.
We have the following tool that has been recently released that should allow you to convert existing data types into "static" ones
http://docs.composite.net/Packages/CompositeC1Tools/Static-Data-Type-Creator
As for layouts and functions - I recommend using master pages and razor functions, which available in the latest beta version.
The same question is answered here by @burningice in a little bit more details