Are kernel extensions also stored elsewhere?
KEXT files can reside in 3 locations:

Within an application bundle (XXX.app)
Within an application's sub-directory inside /Library/Application Support
And inside /Library/Extensions

Generally where the app developer chooses to place the kext files depends on the app itself and what makes sense for it (eg. how it stores local data, how frequently a kext might need to be updated, etc).
Kext files related to system functions, like network adapter or mouse drivers, will almost always be inside /Library/Extensions as those are loaded on startup. While app specific kext files like what VirtualBox has, can be located elsewhere as they only need to be loaded when the app is in use.
Here's a source: https://developer.apple.com/library/archive/technotes/tn2459/_index.html