Reflection does away the need to manually implement serializers. In a growing codebase where data models transform and references to those models begin to rot, that is incredibly useful.
Serialization libraries need to be decoupled from the records being serialized. These two things are compiled into different assemblies, and often written by different people.
Still possible to replace with compile time codegen, but the implementation gonna be complicated and fragile.