The thing is you also build a level edittor if you have a game engine, also takes time.
And its true you eat out of the programmers hands, because you are not allowed to change anything in the engine.
A good engine would allow you to change and sell whatever you like without charge, and also not hidden in ".DLL" files so you can edit any code.
I also seen/heard that you also can compile for mac on a windows machine, that is one of the things the engines have : cross platform compatibility.
I would love to compile my windows game so it works on any computer from game console to mac.