Suppose someone writes a library that implements a standard API - for which commercial versions already exist - and he GPL's it. Both libraries are dynamically linkable.
Now, I write an application that uses that standard API. Are you telling me
that if I link my binary against the GPL'ed library - then my application must be GPL'ed - but if I link it against the commercial version, it doesn't?
Bear in mind that the resulting binary will be bit-for-bit identical in those two cases.
Suppose - you are right - and I link against the commercial one - and distribute my application (without the library code). Now someone runs my application (without my knowledge) against the GPL'ed code. Is my application *now* caught in the GPL trap? What if I didn't even know the GPL'ed version of the library existed? What if it didn't even exist when I wrote my application?
If dynamic linking fell legally under the GPL, we could force Microsoft to release the entire source code to WORD - by simply writing a GPL'ed plug-compatible DLL that matched one of the DLL's that WORD links to!