But it could be DKMS module or something other run as separate project? I got software arch point, but it seems very odd having such things in kernel project, no?
If the kernel had a standard ABI, an out-of-tree kernel module would be the way. As it is, DKMS is a pain and so in-tree modules are the easiest where license allows it.
Linus decided it's OK, so it's there. If Linus wouldn't approve it, DKMS would be an alternative. There are plenty of stuff in kernel, which might look weird to be there.