Just FYI the technical issue was dealing with legacy threads. For threads to be displayed, they have to be recalculated. Imagine opening an assembly - BAM - we have to regenerate every part. You sit there waiting forever. Then you add a constraint and press Save - BAM - all your parts have to be saved.
Along with a few other reasons, we decided another approach was needed. The next version will show visual threads but will only show visual threads for threads that have been recalculated in v22. All threads created in v22 or later will have this done automatically. For legacy files, you will need to regenerate the file, move the dogbone up/down once then save.
In our experience it is never a good idea to force people to regenerate a bunch of things en masse. So that's the limitation. For parts with threads that are made prior to v22, you need to regenerate them to see the threads. It isn't perfectly ideal, but it is a safe and predictable approach that gives the user total control over their data.