I can't tell if this is criticism alone, or if you're also asking the question. It seems these articles and discussions assume that the reader is all-knowing when it comes to the IP issues developers could face in their careers. Allow me to attempt to fill in the gaps.

When you write code, in the U.S. you hold a copyright to it at the moment you put the characters onto disk. In the case of work-for-hire (i.e. you are employed as a software author by your company), the company holds that copyright. No one else has permission to use, copy or distribute the software without the express permission of the copyright owner. Licenses are the mechanism used to bestow rights upon other users (or, in the case of Open Source Software, potentially other developers) of the software.

Switch gears a bit: other companies (vendors) providing interesting systems (those that you or your company are interested in using) also provide information on how to interoperate with their systems and libraries. When using the C family of languages, this information is provided in a machine-readable format known as a "header" - the header file is source code that describes the procedures made available inside the vendor's code libraries. You include this header in your own project so the compiler can validate that you're calling the library code correctly. They've given you a binary library and not the source to the library to help in protecting their rights to their original code.

Now, after years of offering a particular product on the market, a vendor (Vendor A) decides to discontinue offering this particular product regardless of the fact there are numerous client who still use this product and are willing to continue to pay for support. They are not willing, for whatever reasons, to completely overhaul their own systems and incur the immense expense in changing to this vendor's completely new and different product.

Company B steps in offering an interoperable replacement to that old system that's been discontinued by Vendor A. Company B created a completely legal replacement for this system because they did not use Vendor A's source code. They created a "clean room" implementation of the system. As far as the client's systems are concerned, the interfaces into Company B's solution look exactly like Vendor A's system, to the clients network, employees and customers carry on with business as usual.

Courts have ruled that creating systems for such interoperability is legal and necessary. Without such recognition, vendors have the opportunity to lock their customers into the vendor's products. Interoperability is defined by interfaces to systems and libraries. The interface into a library is an Application Programming Interface, or API. The API has pretty much been declared to not be of the expressive type required to obtain copyright protection. If API's become completely protectable by copyright (and thus require a license to use), companies can then limit the ability for others to provide interoperable systems thus limiting competition. In this case, the legal freedom of developers to create tools and apps around an existing system is severely limited and perhaps even eliminated, regardless of the fact that these developers didn't use any code from the vendor in the process.