I think a good way to use TestComplete is to mix NameMapping with descriptive programming. There are some aspects of many applications that don't hold to static mapping so there are some points where using "Find" functions and such may work better. But I think, when used properly, NameMapping can work very well, even in more modern applications. Using wildcards for certain dynamic property values, using conditional mapping, using required child objects, etc., all part of the TestComplete environment that you can leverage for your use.
In this particular situation, I think mapping is still possible... we had a situation similar where only when an item had focus did it actually show on screen.... and just a quick recording against the component did the trick.