Ha I know the feeling, like me before, thinking ".. that stupid Qt, why doesn't this work, why are they so dumb..." oooh, it helps to run qmake again :-)
Yes, it works if I build a normal shared library an a designer plugin containing the widgets used by other plugins.
The normal shared library is used to be linked to the other ones and the plugin is loaded into the designer to have the widgets available there.
Whew! I think I got it...
The mistake was to use the includes of shared \build_dev when building in release.
There is only one little difference which made everything work: qconfig.h!
It defines QT_STATIC in the static \build_app1 ...
The debug config of the project created by the Qt Add-in has to be adjusted a little though:
Include directory $(QTDIR$)\include =>...\build_dev\qtbase\include.
Lib directory $(QTDIR$)\lib =>...\build_dev\qtbase\lib.
The project still uses \build_app1\qtbase as Qt Version.
That way, the Debug build looks for includes and libs in \build_dev while the Release build looks in \build_app1.
And the .lib symlinks are not necessary anymore, I just kept the bin directory symlink.
Just in case someone else wants to do something like this...
Thank you to everyone finally I've decided to migrate (it was about time!) from the old QtOpenGl support to the newer methods ie QGLFramebufferObject -> QOpenGLFramebufferObject it takes a lot to refactoring but I think it will save time for the future.