Another approach could be adding optional explicit profile to header like [effect fx_2_0]. Requirement setting with [require] could then be used only for draw tests.
I don't think I understand. Why would we want to use different profiles between the compile test and draw tests?
Because they are not related. Drawing tests use specific runtime system, each of these support a number of compilation targets. To test that something compiles without drawing it we don't need to know what is supported by particular runner.