One thing which could help reducing header file size would be to be able to include a class a header file with for example only the RPC function declarations.
something like:
class ACharacter
{
virtual void Tick() override;
#include "CharacterRPC.h"
};
CharacterRPC.h
UFUNCTION( Server, WithValidation )
void DoSomething();
virtual bool DoSomething_Validate();
virtual void DoSomething_Implementation();
The same could be done in implementation files.
It would not reduce the global amount of lines of code, but still it would make managing the classes maybe easier.
I remember I tried that a few monthes back, but I got errors with UHT. I doubt it would work right now, but it might be a possible extension.
My 2 cents…