Dexterity object as field of another dexterity object: Works out of the box, but introspection not

I am a bit lost.
The context of Type "Catalog" has an attribute "portal_type" explicitly set as well as lots of other attributes.
The complex property of "Catalog" of type FOAFAgent has no attribute "portal_type" and lacks all the other goodies.

>>> self.context
<Catalog at /PKAN/organisationen/hobbit-presse-gesamtausgabe>

>>> self.context.__dict__
{'_v__providedBy__': (1513373658.087768, 1513365428.9656048, 0, 8781894840713, <implementedBy ?>), 'description': '', 'portal_type': 'catalog', '_mt_index': <BTrees.OOBTree.OOBTree object at 0x7fcb1b830f50>, 'creation_date': DateTime('2017/12/15 22:34:18.011812 GMT+1'), '_Modify_portal_content_Permission': ('Manager', 'Owner', 'Editor', 'Site Administrator'), '_tree': <BTrees.OOBTree.OOBTree object at 0x7fcb1b830e50>, '_Access_contents_information_Permission': ('Manager', 'Owner', 'Editor', 'Reader', 'Contributor', 'Site Administrator'), '_View_Permission': ('Manager', 'Owner', 'Editor', 'Reader', 'Contributor', 'Site Administrator'), 'add_title': [<Literal at >], 'publisher': <Foafagent at >, '_count': <BTrees.Length.Length object at 0x7fcb1b902578>, 'language': u'de', 'license': 'http://modor.de', 'title': u'Hobbit Presse Gesamtausgabe', 'workflow_history': {'simple_publication_workflow': ({'action': None, 'review_state': 'private', 'actor': 'admin', 'comments': '', 'time': DateTime('2017/12/15 22:34:18.034978 GMT+1')},)}, 'rights': None, 'modification_date': DateTime('2017/12/15 22:34:18.011812 GMT+1'), 'id': 'hobbit-presse-gesamtausgabe', '_plone.uuid': '9a8f1e9f7a234dd3a65083b1d2db6ce8', 'creators': ('admin',), '__ac_local_roles__': {'admin': ['Owner']}}

>>> self.context.publisher
<Foafagent at /PKAN/organisationen/hobbit-presse-gesamtausgabe/>

>>> self.context.publisher.__dict__
{'creators': ('admin',), 'creation_date': DateTime('2017/12/15 22:34:17.999355 GMT+1'), 'name': u'otto', 'modification_date': DateTime('2017/12/15 22:34:18.000149 GMT+1'), '_plone.uuid': '1ad5a4460fcc4d1aa177188a81d58655'}

Why is this the case?

I also checked:

>>> self.context.publisher.__parent__
<Catalog at /PKAN/organisationen/hobbit-presse-gesamtausgabe>

>>> import Acquisition
>>> Acquisition.aq_parent(self.context.publisher)
<Catalog at /PKAN/organisationen/hobbit-presse-gesamtausgabe>

>>> IDexterityContent.providedBy(self.context.publisher)
True

I also checked that the Foafagent content type works well if not used as a complex property of an other contenttype. That is the case.

Am I guessing right that the "Catalog" object gets its attribute 'portal_type' when it is put into its final destination? And the complex property "Publisher" of the "Catalog" object does not get the attribute portal_type since it does land elsewhere in the ZODB?

How does dexterity look up not existing attributes? Surely not via acquisition, since then it should return the portal_type of the "Catalog" instead, but it returns "None".

Also I noticed that the Publisher property instance is not listed in the portal_catalog.
If I do a simple self.context.publisher.reindexObject() the it goes in to the portal_catalog with portal_type "unkown" and the location of its parent (Which may not be entirely correct).

If I cheat a bit and set its portal_type forehand:

>>> self.context.publisher.portal_type = 'foafagent'
>>> self.context.publisher.reindexObject()
>>> transaction.commit()
>>> self.context.publisher.__dict__
{'name': u'otto', 'modification_date': DateTime('2017/12/16 20:46:42.070806 GMT+1'), 'portal_type': 'foafagent', 'creation_date': DateTime('2017/12/15 22:34:17.999355 GMT+1'), '_plone.uuid': '1ad5a4460fcc4d1aa177188a81d58655', 'creators': ('admin',), '_v__providedBy__': (1513453524.6802478, 1513365428.9656048, 0, 8781895345601, <implementedBy ?>)}

It lands in the portal_catalog with the right portal_type.

If I then delete it attribute portal_type and try to acces it

>>> del self.context.publisher.portal_type
>>> self.context.publisher.portal_type
>>>

Again I get returned "None".
So this is IMHO the prove that dexterity does not queries the portal_catalog for not set attributes. Since in the portal_catalog the portal_type for the publisher instance is now correctly set. asuming that the query to the portal_catalog is not done via the URL (which is not correct), but by the UID which is correct.

Here the prove that the portal_catalog is correct :

>>> portal_catalog.searchResults(portal_type='foafagent')[1].getRID()
981909210
>>> portal_catalog.getIndexDataForRID(981909210)
{'total_comments': 0, 'Title': [], 'effectiveRange': (-1500, None), 'path': '/PKAN/organisationen/hobbit-presse-gesamtausgabe/', 'commentators': '', 'Type': u'FOAFAgent', 'id': '', 'cmf_uid': 2, 'end': '', 'Description': [], 'is_folderish': 0, 'sync_uid': '', 'getId': '', 'start': '', 'is_default_page': 0, 'Date': 1081026466, 'review_state': 'private', 'getRawRelatedItems': '', 'portal_type': 'foafagent', 'expires': 1339244580, 'allowedRolesAndUsers': ['Site Administrator', 'Manager', 'user:admin', 'Editor', 'Reader', 'Contributor'], 'getObjPositionInParent': [], 'object_provides': ['Products.CMFCore.interfaces._content.IContentish', 'pkan.dcatapde.content.foafagent.IFoafagent', 'plone.app.content.interfaces.INameFromTitle', 'plone.app.dexterity.behaviors.discussion.IAllowDiscussion', 'plone.app.dexterity.behaviors.exclfromnav.IExcludeFromNavigation', 'plone.app.iterate.dexterity.interfaces.IDexterityIterateAware', 'plone.app.relationfield.interfaces.IDexterityHasRelations', 'plone.dexterity.interfaces.IDexterityContent', 'plone.dexterity.interfaces.IDexterityItem', 'plone.namedfile.interfaces.IImageScaleTraversable', 'plone.supermodel.model.Schema', 'plone.uuid.interfaces.IAttributeUUID', 'webdav.interfaces.IWriteLock', 'z3c.relationfield.interfaces.IHasIncomingRelations', 'z3c.relationfield.interfaces.IHasOutgoingRelations', 'z3c.relationfield.interfaces.IHasRelations', 'zope.location.interfaces.IContained', 'zope.location.interfaces.ILocation'], 'in_reply_to': '', 'UID': '1ad5a4460fcc4d1aa177188a81d58655', 'effective': 1055334180, 'created': 1081025134, 'Creator': 'admin', 'modified': 1081026466, 'SearchableText': [], 'sortable_title': '', 'meta_type': 'Dexterity Item', 'Subject': ''}

In summary: Complex properties of dexterity content_types are not indexed into the portal_catalog. Nor did they get some attributes set like "portal_type" a normal dexterity instance has. This looks IMHO at least inconsistent.

Any help appreciated.

Volker