1. What is the easiest way to detect these reverse motions? Currently, I have to zoom in really close on the vectors, the only way I know how to see them in CATIA, which is a pain.
2. How do you avoid this reverse motion? What's the best way to fix them?
The answer to question number one is unfortunately there is no other way in CATIA to detect these tiny reverse motions. If you have some sort of post-processor that will usually pinpoint problem areas but if you don't have access to a post then you're out of luck. As far as concern number two, my guess is the surfaces are crap (especially if they are not native CATIA data and imported from some other system). You can try to rebuild them to get better results. Often times, I will delete the two axial moves using the toolpath editor. Then, I will select the icon to connect the path, select one of the high-lit points, and enter .000 as the value. This way, you will get a direct connection in machine feed. It's kind of weird, but if I want a Rapid connection, I will enter .1 as the value.
Also, sometimes, as in the example, you would end up with a small zig-zag motion. In that case, I will often delete a point if available or move a point along the direction before "connecting" it. As always, toolpath editor is last resort but I'll use it rather than spend a bunch of time fighting surfaces and machining operations. I always note in my programming log, any locked toolpaths, why, when, and what type of edit was made. It's good to keep a log using Excel for whenever you have to make "manual" edits of any sort.