The biggest challenge I can see with something like this is locales.
The classic case is the "Turkish i" situation. In English, lower-case "i" (U+0069) is case-insensitively equivalent to "I" (U+0049). However, in Turkic languages, the lower-case dotted "i" (U+0069) is case-insensitively equivalent to a upper-case dotted "İ" (U+0130), and the upper-case undotted "I" (U+0049) is equivalent to the lower-case undotted "ı" (U+0131). Lithuanian also has some interesting behaviour with "i".
The upshot is that you can't definitely say whether "getir" is case-insensitively equivalent to "GETIR" unless you know what language you're working in.
There's also the German "ß", which when capitalised becomes "SS". This means that "MOSSE" is case-insensitively equivalent to both "Moße" and "Mosse" - but are those two case-insensitively equivalent to each other?
For your particular case, these aren't a problem - I think it's probably safe to say that the SQL keywords "INSERT" and "IN" are in English, and therefore unambiguously equivalent to "insert" and "in". However, it does present a possible challenge when defining a keyword like this in the standard.
Right now, my guess is you're using JavaScript's String.prototype.toLowerCase(), which is described as "locale-independent". What that actually means, though is that it's locale-insensitive. Basically, implementations pick a "generic" locale (I'll give you one guess what that is) which is perceived to work OK for most cases.
So I'm not opposed to such a keyword in principle, it's just... possibly quite complicated to specify in practice.
Geraint