But I see no reason why I should GPL my entire product just because it uses a couple of functions from another GPL program.
If your program uses someone elses code, even if it is only one small function, then you should be seeking permission to use it.
The GPL gives you permission, under the condition that you open all of your code under the same license.
If you dont like that, then the answer is simple. Dont use the GPLd code. Or try and get the code as a library, link to it, and use the LGPL.