For all the restrictions which commercial licences impose, I've never seen one which imposes this requirement to disclose and give up your own IP to the world.
I mean, the intent is mostly intended to keep people from making modifications to GPL code (which they get for free) and not sharing those back upstream, or with their customers. The fact that in the world of microcontrollers "library" code and "application code" often can't easily be separated is obviously annoying.
I see it slightly differently. There's nothing in GPL that requires you to share your modifications to GPL code back upstream. You may make copies of GPL software, modified or unmodified, compile and run those programs, so long as you don't ship the program to anyone else. Up to this extent, you don't have to share your source code changes with anyone. This happens all the time in the corporate world and does not represent a license violation of GPLv2, GPLv3, nor LGPL.
I believe the intention of the GPL is to preserve end user freedom to effectively modify the programs that they run and this is reflected in the preamble to the license text as well as by the license clauses embodied within.
When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.
The basic permissions clauses in v3 is what allow you to run modified versions of the code on your own and, so long as you don't give the binaries to anyone else not under your control, you don't have to publish your modifications. You have this same right under GPLv2, but there's no single, specific clause to allow it, rather you have to infer it from the lack of obligation under any other clauses.
You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force.
On the obvious annoyance front, this is why LGPL, MIT, and Apache [and similar non-copyleft] licenses are popular in the microcontroller and general F/OSS world.