Technically if I sold my company that is a redistribution according to the GPL.
Presumably you mean, "If I were to take some GPL software, add to it, and then sell my rights in it to someone else, then I could not grant them permission to add restrictions to the use of the GPL software." Quite correct. That's the point of the GPL.
The buyer would be forced to give away the asset for free
You've promulgated this idea before, and it remains completely untrue. Read the GPL.
I am not saying I like EULa's from MS but I was making a point. I can link to com objects in a crappy VB written program but still can sell it.
And you can link to an LGPL library (the normal licence for a library) and still sell it. And indeed, you can link to a GPL library (if you can find one) and still sell it, albeit with some restrictions on the licence under which you sell it.
What if for example I use a GPL api call for printf (making this one up)
Yes, that's the trouble - you're making things up. It's called setting up a straw man. If you link to printf (typically coming from the library shipped with GNU C) then you are linking to an LGPL product and it imposes no requirements on you to open source your code.
You're muddling up two cases to try to make a non-existent point.
If you link an LGPL library into your code then there is no requirement for you to make your code open source.
If you take a GPL product (which generally isn't a linkable library - it's a complete implementation of something), modify it, and then want to sell it, you can't sell it under a licence any more restrictive than the one which you received it under. There is no requirement on you to let anyone else have a copy of it at all, nor is there any restriction on you selling it.
Nobody forces you to make modifications to a GPL product, but if you choose to do so, and want to redistribute it, then you can't take permissions away from others. That's eminently reasonable.