One other thing to consider for NetBSD in particular is that the project still supports "dead" architectures and machines that are almost 40 years old. Many people would consider all this cruft and try to purge it all but I consider it to be a really laudable goal to keep all these old machines working (both from a permacomputing perspective but also a preservation/historical perspective).
This means the project has to be cautious about making big changes. Something that speeds up the framebuffer on newer architectures but breaks it on a bunch of others might seem to be a no-brainer to someone who just wants a Linux-replacement on an amd64 machine, but would really hurt the project. This is one reason a lot of the software feels older.
I don't think every other project (e.g. FreeBSD, OpenBSD, etc.) has to have the same goals, but this is another aspect of why NetBSD might require a bit of adjustment compared to modern Linux.