Ensuring compatibility is quite a daunting task, especially since core itself does change often (less so than before, but occasionally still does).
In the case of bundled modules, that is, those defined in package.json, if they are out-of-date or too far ahead, they will cause NodeBB to not function. Its behaviour is quite restrictive, although it is intentional!
We're considerably less restrictive when it comes to third-party plugins, and all we read is the nbbpm.compatibility portion of package.json. Even then, we can't ensure that a dev will keep this section up to date, or even that there will be a section at all! So it is merely a suggestion, though I am open to changes.
I am considering changing nbbpm itself so that if a nbbpm.compatibility section is not found, it will not be added to the plugin listing. Right now a great majority of plugins don't specify compatibility information at all...