Why re-invent the wheel when he could just use the numerous engines and libraries already written in C. By the way C# isn't easier for low level tasks, better off just using C/C++ and wrapping in a high level scripting language.
I was thinking about using Python or LUA for the game logic indeed (Python because I am quite used to it, and LUA because it seems to interface really effortlessly with C).
Which engine would you recommend me? Most 2D game engines seem to be targeted at non programmers, or towards making flash games, except for a few like SIO2 (but it is mostly targeted at making mobile games), cocos2D and Torque2D.