With “Copyleft” licenses the license terms automatically apply to derivative works. So if you fix a bug in some GPL licensed code, that bug fix is also licensed under the GPL terms. The “deal” is essentially “everyone benefits from everyone’s work.”
The difficult part is enforcement: How can we even know if a user has made a modification?
The older licenses assume that a user can’t really get more than personal benefit from a modification unless they “distribute” a copy of the modified software to someone else. Clearly the recipient of a copy of commercial software can look and see if any Copyleft code was included.
With the rise of software-as-a-service, however, the modified copy never leaves the user’s computers. This seems like it violates the spirit of “everyone benefits from everyone’s work”. This is one of the issues new Open Source licenses are trying to address.