I don't know what the right answer is, but it's certainly not as clear cut as you imply. If you buy a *physical* item, like a book or CD, then you own that item and can pretty much do what you want with it (you can burn it, throw it away, sell it etc.), though even then there are limitations (eg. you can't play the CD over the tannoy at a shopping centre for example, or rent a DVD out for money). A software license isn't a physical item however, it's a license to do something specific, and could come with limitations. It's roughly analogous to renting a flat. There are lots of things you can do, but plenty your contract might say you can't (eg. subletting it, or keeping a dog, or whatever).
Imagine you're a software author, selling software to a customer. Should you be allowed to impose conditions in the contract, such as "only to be used for educational, or non-commercial purposes" (because you charge more for a commercial license). What about "not to be used by the military"? Not to be used unless you pay £x each year in support? Not to be used outside of the United Kingdom? Only to be used by customer X and not transferable to other users?
Which of these are reasonable contract conditions and which aren't? Which are so un-reasonable that they break the long established principle that businesses (not individual consumers) are capable of deciding for themselves what they want to agree to or not and as long as it's not blatantly illegal pretty much anything they agree to in a signed contract is enforceable?