There is an option, you can use instrumented classes. This will do the instrumentation at build time rather than runtime. It also enables some features that are not available when using CGLIB. Have a look here:
http://www.hibernate.org/hib_docs/v3/re ... properties
It's pretty easy to implement and all you need to do is pass all of your persistent classes through the Instrument task. It does make it a bit faster to start up, but it doesn't speed up the parsing of mapping files or annotations.
Serializing a SessionFactory to disk could be problematic as you would have to build in additional logic to look for configuration changes. It also doens't solve the issue your are trying to addres which is to avoid the over head of runtime instrumentation.
Ryan-