if i make the function static i can use the D::GetMovementGeneratorType[Static]() combination, which _might_ result in more imprved code (as this is the identical return result, and hence the places where the D::GetMovementGeneratorType is evaluated statically (ie in TargetedMMGenMedium) these checks _might_ be translated to "if (false)" or "if (true)" on compile time, and then directly improved.

And static functions are not const (as they don't operate on an instance of the class)

To name the function "Static" was only done to have these things clearly figured to prevent "bad" use of them.
("overloading" a normal member function with a static function appeared to be a bad thing to me - hence a new name)