So basically in an offline profile you can have either the generalization or the specialization of an entity, but not both. Which means you cannot do stuff like casting to get a specialization from a generalization list like you would on the server. This explains why you would also get the specialization when you retrieve the generalization since they are the same thing, but not with its specific attributes.
ps the documentation is here