The way npm handles peer dependencies left much to be desired, especially in a development landscape like ours where versions go up regularly and different rates compared to plugins.
Specifically, if a module A required a peer dependency B with a fairly strict version (e.g. ~0.15.0), then if that dependency got updated to v0.16.0 or above, then any future attempts to install module A would throw a peer dependency error and abort the npm installation, leaving NodeBB in a state that would not run. That's not so good for non-developers