I've heard this narrative a lot, but I'd challenge it. I tend to actively disable serde feature flags and don't use libraries with mandatory serde dependencies.
It seems to be one of those things that are good enough™, while still falling short of being actually good.
- rusts type system is strong enough to build extremely powerful zerocopy serialization, but people don't explore that space because of serde
- macros and especially proc-macros in Rust are horrible, and are only feasible because of the syn crate
- syn itself is essentially a hack that has become so entrenched that there is little incentive to improve rusts metaprogramming story
- serde adds a ton of compile time whenever used because of the heavy macro usage
- the author of serde and syn has been at the center of a ton of drama, being at the root of the keynote incident that essentially stalled comptime reflection (Zig is eating Rusts lunch in that department) and caused a huge setback on rusts inclusivity, shipping binary blobs in serde to make a point and push an RFC (essentially abusing the power he has with serde), being the final descision maker of the latest core::time breakage, all leave a bitter after-taste for someone who doesn't aparently have any official position in the rust foundation with the appropriate accountability, yet holds an enormous amount of hidden power (and being ex-palantir also makes me a lot less inclined to give him the benefit of doubt, that these were all unfortunate misunderstandings)
I think the overall impact of serde and syn, including the authors behaviour has been a net negative for the rust ecosystem, both technically, personally, and marketing wise (the rust community is perceived as being unprofessional and overly dramatic).
Having written this down like that, makes me realised that I don't just avoid serde, I boycott it.