You are correct, it seems that it will in fact show expansion as long as the properties are of the same type. I did some testing and was able to make a custom DataFactory and data accessor that showed expandable sub-properties.
Basically I started with the CustomFactoryDictionary sample in making a custom data accessor. I modfied it a bit and made sure IsMergableInternal returned true. Then my custom factory created those objects and it all worked ok in terms of expansion of sub-properties, even when multiple objects were selected.
See if that helps, and if not, perhaps write us with a very simple sample project showing what you are trying and we can try and debug it. Be sure to reference this post and rename the .zip file extension so it doesn't get spam blocked. Thanks!