As I've said, they will be tested before actually releasing, and the smart people can simply elicit to avoid using that kind of counterproductive shorthand.
Could OCaml allow for something like that at all?
Not possible, because of a ton of blah blah blah about precompiled grammars, hashtables and greedy algorithms.
I've thought a bit more about this, and I believe that I can reduce chances of conflicts by leaving the underscores and having only abbreviations more than a character long. Each word will be broken into underscore-separated tokens, and each of those can be either its full version (ACTION) or a shorthand version (AC). I have the following in mind (more can be easily added):
ACTION: AC
PATCH: PA
OUTER: OUT
INNER: INN
LAUNCH: LA
FUNCTION: FUN
MACRO: MA
ARRAY: ARR
ASSOCIATIVE: ASS (so your 12-something relative can giggle at your code)
DEFINE: DEF
OFFSET: OFF
INCLUDE: INC
STRING: STR
COMPARE: CMP
EQUAL: EQ
EVALUATE(D): EVAL
LATER: L8 (LAUNCH is more important)
FORMER: FO
INSERT: INS
No ASCII because ASC is unreadable (you'll end up reading ASCENDING). No SHORT/etc. because I can't think an acceptable way to shorten them to 2 characters (the closest I could think was U2 because it's unsigned), and no READ/WRITE because RE_LONG is stupid. ENTRY/ENTRIES can be skipped entirely.
Examples of new shorthand include AC_IF (the shortest shorthand possible), PA_PRINT, INN_PA_SAVE, AC_DEF_ASS_ARR, READ_2DA_NOW, WRITE_2DA_L8. You will be able to mix/match normal or short words as you want (AC_DEFINE_ASSOCIATIVE_ARR is valid if you like that sort of stuff).