Having worked on things like this for quite some time now (particularly for my hover tank project), I can tell you that it’s virtually impossible to implement a ‘generic’ movement component which supports prediction and reconciliation. You have to build it into the style of movement you’re creating. You’ve probably seen the code by now but Character Movement Component’s prediction code is intertwined with the movement code itself, it’s nearly impossible to make it work for any style of movement because there are too many variables to consider.
Wheeled Vehicle Movement also doesn’t do Prediction / Reconciliation because it’s too expensive and wheeled vehicles are physics driven, which makes it considerably harder. CMC works so well because the movement is near-enough deterministic and not physics-driven. Even Unreal Tournament doesn’t do prediction for vehicles, it allows for some difference between the client and server simulation but it’s mostly just hard position updates. In 99% of situations that’s good enough. Networked physics is hard as hell. even Rama’s early implementations were client-authoritative. I think he’s recently pulled off server-authoritative but he hasn’t posted code yet, so can’t be sure.
Honestly speaking from experience, networked movement is a minefield and every implementation is very specific. Welcome to hell!