Half globals are legal with the backwards-compatibility flag, though. Which is not to say that 1/8 is wrong as is, but maybe we should add a test to half.shader_test.
(I thought we were previously passing that flag always but apparently we weren't, so those tests were broken even then...)
Wrt 3/8 and 6/8, should we instead skip resource directives if we're under a [require] directive?
Wrt 8/8, do you know where it crashes? d3dcompiler_47 here seems perfectly capable of compiling both of those shaders.