I don't sell the code I sell the support.
I release everything I work on under BSD and if a company has questions about it I have contact information and an hourly rate available for support. If a company takes it and runs with it (Tivo) then it's not like it was something I was going to get around doing anyway.
If they don't want to pay for support and their product is good enough, a competitor will.
I don't lose out on anything. My code gets used (what I wanted and why I released it) and in 5-10 years if some company wants a subject matter expert I have my contact information and hourly rate available. Beyond that I honestly don't care.