For this reason we try to use indexes defined on one or more of these residual properties: then things start to go bad.
Indexes were primarily designed to be used statically together with non-residual properties (i.e. similar to how you would define DB indexes). Using indexes with residual properties is strange to say the least: 4 out of the 5 types of indexes (with the exception of the nodeType indexes) require a concrete property definition for which the indexes should be created and registered. However, residual properties are anything but "concrete".
That being said, even though your use case sounds "exotic" to me, it doesn't mean it should not work. If you can attach some sort of code sample as to what you're trying to do, I could probably tell whether it's supposed to work or not. Also, just in case you're dynamically registering index definitions, because [MODE-2644] Problem in indexing: the indexes are being persisted but they are not recognized and disabled at startup - J… they will not work properly between restarts.