I don't believe this can work. It will only store Recipient instances.
If you look at how PolyModel works, all variants are stored as the base class,
in your example Recipient
. It also stores the sub class names, when and entity it is retrieved from the data store, it recreates the specific subclass.
I really doubt they would have built this mechanism into StructuredProperty instantiation, and you have found this to be the case.