If you precompile the kernel, you don't want to be in a situation where it's very difficult to tell whether the precompiled kernel is valid for a new shape. For example, user provided hl.specialize calls, int64 indexing choices, etc. It's very hard to do generically without knowledge of the kernel itself.