Why RPC functons used in charactermovementcomponent are Character's members?

ServerMovePacked_Implementation is defined in Character, but actually move rpc is used in charactermovementcomponent.

why not define the rpc function in CharacterMovementComponent?

how to understand this sentence: “The actual RPCs are passed to ACharacter, which wrap to the _Implementation and _Validate call here, to avoid Component RPC overhead.”

The key part is “Component RPC overhead”. RPCs in components is (or was when this was made) less efficient that Actor RPCs.