The initial input is read by the *bootloader* to see which partition to boot. *Vol-* will trigger *recovery*, while no input will trigger *ROM* partition. The bootloader is initially installed by your OEM. No matter what version of Android you have, you still have the same bootloader until you either update your bootloader or install a custom bootloader. The OEM bootloaders are *likely* based off the AOSP tree, depending on your specific phone (I am not sure for the M8).