It is important but not a priority. It takes time to note that a Win32 loop is very very similar to an Engine. The variables sometimes confuses. Like INT_PTR CALLBACK, MSG, etc. The first time I've looked to this I said: what the hell? But it's like a game. It has a space inside the code to handle and dispatch messages/actions/input a update function to refresh data variables and a paint command to render stuff (just a eg.).
A little bit off-topic but If you are starting to OpenGL, you can follow the right path and try to not put OpenGL code inside the shape class itself. Create some wrapper class that encapsulates the OpenGL Objects and some Renderer that owns them (manages its life/creates/destroy/consult).
Other advice: load the model from a file. Hardcode nothing that can be loaded from stream.
What are Actor and RigidBody? Are those components?
This means that there is some outside code that knows specifically about a PhysicsSystem, and more importantly that entities with Actor and RigidBody should be added via PhysicsSystem.PushSync.
Instead, I would think this logic would exist in the PhysicsSystem. e.g. systems in general implement a common interface that has methods for adding/removing entities. When it's called, the PhysicsSystem itself knows that it's interested in entities with Actor and Rigid body, and can then add them to some internal list. That way you don't need outside logic that knows about the PhysicsSystem (other than a single line of code that says, "create a PhysicsSystem and add it to the list of systems") and that it depends on Actor & RigidBody.
2. Was just a simple way of saying...
3. I completely agree with you in that case. Now, following your method, becomes:
I said the More Effective/Effective C++ books because those are the books that every C++ programmer should read. Like the front cover says: the objective of the book is improve your code design and efficiency as well.
IMHO: don't lose your time with fixed-function pipeline (I've lost 6 months studying that) because your lines of codes will grow exponentially, and with shaders, you will learn interesting stuffs at the same time knowing that you are in the right way of learning OpenGL. Also, never hardcode geometry (use OBJ models or something for the job).