Even though, yes, the original post is very old, I still believe that the best "software license enforcement" is: "
none, other than expiration dates."
I've sold
a proprietary Windows product for more than twenty-five(!!) years now, and the only thing that it has is a simple serial-number that can have an expiration date. There is no "enforcement." I don't want my paying customers to even be inconvenienced. I use the expiration-date feature to support time-limited (but not feature-limited, and not "free") trials ... and to offer an attractive low-priced option for a frequently occurring use case.
(You can apply the full purchase amount of a time-limited version toward the purchase of a not-time-limited version during the time-limit period.)
I don't lose sleep over the license-code-publishing that I know happens. I'm too busy supporting my
customers. And, "leaving them with a stack of virtual business cards ..."
One very interesting thing that I
did learn is that some government customers, particularly outside of the USA,
need for there to be "something that they
must buy." Because they're not allowed to spend public funds for anything that can be had for free, and they don't feel comfortable trying to satisfy their auditors unless there's a license-code that they can point to. I guess that's at least part of why many [business ...] products that are "off the [now-virtual] shelf" often still require the entry of some "code" at some point during their installation . . .