I suppose it probably does.
I agree. There must be some two way communication going on, for the bootloader to be able to say that it is ready for the next page of data.
Exactly what form that communication takes, though, I have no idea.
This suggests to me that it may be possible to provide feedback to indicate that the bootloader has gone into 'diagnostic' mode
Now, that certainly sounds like a good idea.
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.
I'm not sure I agree. Since the communication process between the bootloader and the uploader are normally not shown, seeing "Entering diagnostic mode" on the display window, in that horrid red color on the black background, wouldn't tell me squat, and certainly wouldn't trigger an aha moment.
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.
Whether the string literal is supported or not depends on the bootloader. Not all Arduinos ever produced are using the same one. Changing the bootloader that is put on future Arduinos isn't going to alter any of mine. And, it's not just string literals that can cause the problem.
char threeBangs[4];
threeBangs[0] = '!';
threeBangs[1] = '!';
threeBangs[2] = '!';
threeBangs[3] = '\0';
Serial.print(threeBangs);
will result in the same issue when the compiler gets done optimizing my attempt at foolishness. And the resulting code will trigger the bootloader to go into diagnostic mode.
I suspect the truth is that it simply hasn't been addressed yet, because the developers are all busy working on more important things.
I suspect its more that they have no control over what happens after the Arduinos are sent on their way (not counting all the clones that others are making), so fixing an issue that trips one or two people a month isn't a high priority.
Again that supposes that the Arduino team has full ownership of the bootloader code. I don't think that they do. Optiboot (the one with the issues) was not developed by the Arduino folks, if I remember correctly.