It's not by design, per se, it's just a limitation related to what you're trying to accomplish. Instance material overrides apply to the entire mesh of a particle. If your source objects are composed of multiple meshes and multiple materials, only the meshes can be preserved because there's no way to apply multiple materials to the same mesh without using a multi/sub setup, and tyFlow does no material collapsing itself. You can get around the limitation by setting up proper multi/sub materials on your meshes yourself, then applying the multi-sub material you create as an instance material override within the Shape operator entry.
Or instead of the Shape operator, you can just use an actor setup which would allow you to import the multiple objects as a single entity while also preserving your materials.
Or instead of the Shape operator, you can just use an actor setup which would allow you to import the multiple objects as a single entity while also preserving your materials.