This is not a bug in Class::C3. The difference in behavior is in MRO::Compat. Specifically, mro::get_pkg_gen without Class::C3::XS will always return a different number. Class::C3 doesn't provide that API at all. The difference reveals an existing flaw in Moose.
I've found a mechanism that could make mro::get_pkg_gen consistent with or without Class::C3::XS, but I don't believe it is worth implementing. Moose is the only real user of that API, and the only real benefit of changing it would be for performance. The odds of Moose being installed without Class::C3::XS are pretty low, and the workaround requires magic that I don't trust the performance characteristics of.