INLINE[n]    becomes ONLY_INLINE_FROM[n]
NOINLINE[n]  becomes ONLY_NOINLINE_BEFORE[n]
...
And I am not even sure if ONLY_INLINE_FROM has the connotation of
definite inlining to every reader...

ONLY_INLINE_FROM is problematic indeed, because it could just as well mean the same as MAY_INLINE_FROM.

I still think we should consider splitting up the original INLINE[n] pragma into two simpler pragmas (it currently does two things, whereas NOINLINE[n] does only one thing). Here' another suggestion (note that phases count down):

INLINE[2]    becomes  NO_INLINE > 2, INLINE <= 2
NOINLINE[2]  becomes  NO_INLINE > 2

Or, if we don't want two separate pragmas:

INLINE[2]    becomes  INLINE_IFF <= 2
NOINLINE[2]  becomes  NOINLINE > 2