This is happening because of Project Treble which creating a boundary between device drivers and the kernel.
Earlier, kernel versions (even android versions itself) were subject to integration of device drivers into the kernel source code... which took a long time and often resulted in forced obsolescence.
By separating out the driver interface using Treble, you can update the kernel and android versions from upstream without worrying about driver integration/updates.