XPO2 (currently in beta) supports both generics and nullables out of the box. I did a simple test by creating a generic XpCollection:
XpCollection<SomeEntity> coll = new XpCollection<SomeEntity>(session1);
SomeEntity se = coll[0];
SomeEnitity had also a nullable int? field/property which performed as one would expect. Great. XPO2 seems more and more appealing to me.