This is what they do now, just the boundary between the compatibility interface and the real implementation lies inside the kernel, not in userspace. I'm not sure what difference it would make to move that outside -- it's still the same amount of code to be maintained, and now you introduce potential version skew issues.