I understand why the compiler isn't able in some cases, but anyway there should be a way to fix it; maybe 2 pass compilation although I understand it isn't feasible without rewriting most of the compiler (IIRC current compilation is done in a single pass). Anyway it is quite annoying.
Is the hint triggered when called in a different unit or the same unit? If the same unit, then see my example: if you want FindState to be inlined then any callsite inside the same unit needs to be after FindState.
Other possibility: is STATE_NOT_FOUND global or local to the unit?
Sometimes in the same unit, some times in other units.
Fixing the
"same unit" the way you said is a mess, as I have the implementation in same order than the interface declarations, wich is helpful for maintenance. So changing that... Not sure but I think I have hundred methods in the engine and several docens in Allegro.pas.

What about the other units?