I don't think that DBPro is much different to DB Classic in respect to the topic being discussed. So the following might help you understand what is going on...
If you use Set Camera View to set an area of the screen then that area is 3D and the area around it is 2D.
While the Sync command refreshes the camera view it doesn't clear the 2D area. Every Sync command, any text on the 3D area is deleted and to prevent that happening in DBC you simply put your Text command on the very next line after the Sync in the main program loop. (Actually, I think this the only thing that has changed with Pro as it's no longer necessary).
The CLS command on the other hand only clears the 2D section of the screen and doesn't affect the 3D section. To prevent flickering you just need to put any text commands for the 2D part of the screen immediately after the CLS and before the Sync - and of course make sure you've used Sync On.
The answer to your point about using Set Text Opaque being of no use if the previously printed text used a longer string is quite easy to get around - just add empty space to the end of the string:
Text 20,10,"Short String (Insert Lots Of Spaces Here - They Don't Show Up On The Forum)
" or...
Text 20,10,"ShortStrVar$"+"(Insert Lots Of Spaces Here - They Don't Show Up On The Forum)
"TDK_Man