PaulS:
Agreed. But, you did suggest a solution that is completely impossible. The bootloader has no way of knowing whether the stream that contains !!! contains them because they were meant to trigger the functionality that they are a key for, or if they are embedded in the data stream as a result of the compiler finding them in a string literal.
Perhaps the bootloader can differentiate between those two cases, or perhaps it can't - I don't know. I suspect it could do, if the designer had wanted it to. However, I didn't mean to imply that the bootloader should try to differentiate between those two cases. I don't know whether the bootloader has any means of providing feedback to the loader running on the PC, but since we sometimes see sync errors and so on I suppose it probably does. This suggests to me that it may be possible to provide feedback to indicate that the bootloader has gone into 'diagnostic' mode (whatever that means). Simply telling the user that this has happened would make it hugely easier for them to figure out what they've done wrong and how to correct it. Since I don't have any idea how the bootloader works and what the diagnostic mode does this is pure speculation on my part based on what I guess is happening under the covers. Obviously a developer trying to solve this problem would have a far clearer view of what options are available, if any. But from my perspective, it is not clear that it is intractable.
If in fact it's not feasible to do that, then then having the IDE warn the user that they have used an unsupported string literal does not seem impossible. If it isn't practical what whatever reason, then documenting this known problem in the place that users are directed to go look for advice about known problems does not seem unreasonable.
I've no knowledge about the software involved or what sensible options there are to address the problem, but it does not seem to me like the sort of problem that should be intractable. I'm not at all persuaded by AWOL's suggestion that the existing behaviour is reasonable, or your implication that there is no sensible way to correct the problem.
I suspect the truth is that it simply hasn't been addressed yet, because the developers are all busy working on more important things.