Search C++ inline functions you will find a lot of stuff... most of it will say profile your code with and without to tell if inlines are helping.
Being static and being referenced by a pointer are two different things, express this in code example please.
Yes, because space has to be alocated for all parts of an object.
Yeah, rewrite it from scratch
. Seriously though, first find parts that are obviously lagging down your program, and rewrite those, then when you can't tell as easily look into profiling your code to see where the bottlenecks are and work on fixing those up. This is where design patterns are something you need. That way you make interfaces to areas of your code, and can change the implementation without worrying about the affects on the rest of your code.
You will iterate through this "find the slow stuff or stuff that doesn't run how you want to to"-> "rewrite it." thing untill the program as a whole satisfies you. Then you will release it (probably) and users will do the first part (aka bugs) and leave the second part up to you.