I will try to answer your questions in order. I am trying to stay to the point, there is a lot to say but it would become quite noisy. Feel free to ask more questions and as a general comment it would be useful to know a bit more about what you want to achieve, there is a lot of way to control and program Crazyflie and the best way depends of what you want to do with it.
A.1
There is no overlap when is comes to motor control, the motors are controlled by the firmware.
The firmware contains a state estimator that is able to estimate the Crazyflie orientation and position (if you have a flow deck or other positioning system). It also have a state controller that is at least controlling the rotation rate of the platform orientation. Depending of what setpoint packets you are sending you can control angle rate, absolute angles (this is the normal manual flight mode), velocity, position and there is even a high-level sequence controller added recently by Whoenig that allows the Crazyflie to control trajectories autonomously.
The python lib can send any of these setpoint packets (except high-level trajectories), depending of your application you will chose at what level you want to control the Crazyflie and so where you will put the role separation. If you have a flow deck it is good to control the velocity in X-Y and absolute height in Z since this is the kind of measurement you get from the flow sensor. If you have a positioning system you might prefer controlling the absolute position.
Where to work depends greatly of what you want to do: If you want to fly, you can do that from python only. If you want to interface new sensors or implement new low level control algorithm, you will most likely need to do that in the firmware.
A.2
This sounds like an include problem, did you try to tweak the beeps where they are generated. ie. modifying an existing function call instead of making a new one?
The syntax errors in Eclipse comes from a bad configuration of eclipse CDT, not of problems in the code. It is a bit misleading and it is something I am planning of fixing for the upcoming virtual machine release. The firmware project is kept free of any warning or error, that can be verified by compiling it with make. Until eclipse is fixed you should only look at the error or warning reported by the compiler directly, not the one in the eclipse editor. If you ever happen to tweak and configure eclipse properly I am interested, it would help a lot for making the new VM
A.3
Both lib should do the same. The python lib is developed by mainly Bitcraze and will support any deck we produce in one way or another. The C++ lib might not have high level support for all the deck and setpoints packet, but it is currently the only one to support the high-level commander and it should work better to fly a lot of Crazyflie at the same time (for swarms).
A lot of things in Crazyflie are accessed using the log and param subsystem, since both lib supports that you should be able to use either. What to use depends mostly of your project and then of your programming language preference.