I understand that you need to be judicious with the use of inheritance, however this is a specific case where inheritance does indeed make sense (at least it does to us). And the one place in our model where multiple inheritance makes sense too. (We're abstracting a storage mechanism in one dimension and object meta data in the other).
In the case we're talking about, the cost should be identical whether 1:1 related entities or inheritance. (I think polymorphic fetches with left-joins are the primary source of potential performance issues right? That and long chains of subclasses).
Inheritance in this case just makes the code easier.
Anyway, our case is a minority case so I'm not too fussed if you think this is not something that should be in the product. Indeed, using protected properties to "hide" properties from certain subclasses is a work-around, not a clean solution. What we'd actually want is mutiple inheritance with a mixture of entity-per-type and entity-per-type-hierarchy for that inheritance structure - both of which are not possible.
In the protected property case, to get and/or set fields, we'd have to derive from the llblgen entities and write properties in those derived classes to expose the specific protected base properties for the subtypes. This would essentially be emulating entity-per-type-hierarchy (via interface and protected properties) within a standard entity-per-type inheritance model.
ie create a standard entity-per-type inheritance model for the first inheritance dimension then for the other dimension, add all of the fields to the base entity, create interfaces for the second dimensions "subclasses" and then subclass each of the first dimensions classes implementing the appropriate interface from the second dimension - which exposes the appropriate fields from the base entity.
Don't worry. We'll deal with this another way.