Just some clarifications...
Feature 08 GRM (general sprites) does not create new sprites, it simply allocates TTD sprites that would otherwise be unused (eg the toyland building sprites in the non-toyland climates) to sets that request them.
As implemented, feature 08 GRM actually allocates sprites beyond the TTD sprite range to be safe, i.e. sprites 4900+ in the "other" range of the extended sprite limit, which corresponds to real sprite numbers 4900..16383.
Therefore if one file uses GRM, it is guaranteed[*] that no other file will mess with those sprites. The only collisions happen if neither file uses GRM, or uses it incorrectly.
 But no more. Both sprite-number fields in most sprite dwords are 14 bits wide. Occasionally they may be wider, but GRM cannot know if the sprite is going to be used in such a location.
For that reason GRM only returns sprite numbers below 16383. This is not documented; maybe it should be.
[*] An action A attempting to overwrite sprite numbers beyond 4900 will fail unless the file has previously reserved sprites, so it's impossible to overwrite these sprites unless the file uses GRM.
No private messages please, you'll only get the answering machine there. Send email