I've removed your duplicate post, you forgot a quote tag, so that's why the post messed up.
I see your point. Determining if a field value is null wasn't a trivial task though in 1.0.2005.1 it is, which indeed could help improve the lazy loading code. I'll see how I can improve the templates with this. It's not that trivial, as a change like this can break applications, I've to see if it will break applications and if it will, I won't make the change until v2.0
If we're talking about value types, then you're write. Without wrapping the value type in a reference type (which, even with generics, is always clumsy) you can't have null. However, the ORM'ed objects are reference types and reference types can be null.
Ok, I thought you were talking about the FK fields, not the references.
By default, a new entity is returned if the lazy loading doesn't find a related entity. This was initially the case and is never changed as that would break existing code. Instead, a preference is added which controls this. If you go into the preferences of the designer, you'll find under task performers: 'LazyLoadingWithoutResultReturnsNew', which is default set to true. Set it to false, and you'll get 'null' instead of a new entity if hte lazy loading fails.
This setting is inherited by a new project, so if you already have an existing project (as you do), open the project properties as well, and set the property LazyLoadingWithoutResultReturnsNew to false there as well.
Regenerate the code and you'll now get null instead of a new entity.