1. In today's environment, the practice of 'unlocking' features is quite simply an effective way to ship a product with stable, properly configured FW/SW.
2. It is clear extra features were designed to made available after obtaining the appropriate licence/key through certain channels - eg purchase. Market segmentation is not evil - it is pragmatic and it is transparent.
3. Accessing these features outside the spirit of the licensing schema is wrong. Call it what you want - theft, stealing, or whatever. The bleating about the exact words used is simply SEMANTICS. Get over it.
4. Saying that a programmer has already been paid for the software on a device is simply short-sighted and a vain attempt to justify wrong actions. There's a lot of attempting to justify wrong actions.
5. If you want to rewrite the FW/SW yourself to do all sorts of cool stuff, then you aren't benefiting from someone else's work - so, go for it.
I hate to repeat myself, but I don't see anyone else commenting on this.
6. Security of the firmware.
Having been asked to make unlockable features in firmware for a client, I have thought on it and given the following "secure" options, of which they all include flashing the entire firmware onto the chip.
1. Have a simple code to unlock. Just email the code. But once the cat is out of the bag, everyone will have it.
2. Have a mathematic algorhythm query/response for an unlock. Same deal, but at least it might hold up longer.
3. Have a unique random chip ID for each device. Adds expense, and you have to track each product serial number and this must be looked up for each customer requesting an upgrade.
AFAIC, sending customers firmware as an upgrade is not secure. Once the firmware is decrypted or the bootloader is cracked, it's game over. Rather than an unlock code being public, now your entire firmware is available to any cloner in china who can reverse engineer your hardware and use your own (very slightly modified, so now it's not a copy) firmware to make a clone product with only a minimal time and effort... completely bypassing the R&D that you put into your product.
So all this "they put the entire software on the device, because they're lazy and it deserves to be hacked" is nonsense. The software/firmware is the majority of the dev cost on these new DSO's and a very valuable part of the IP, and sending it out to thousands of people, encrypted or not, would be lunacy. Code-protection on the chip is still one of the most secure ways to protect this IP; hence, delivering the product with the full firmware burned on it is very practical from a security standpoint. Forget morality and laziness... this is common sense. Sending a firmware for an upgrade produces all of the same problems as an unlock code, but now you're adding vulnerability of your actual firmware.