Microsoft says "No, not even on servers with GB of RAM."
I don't believe that this is a valid argument. I doubt if Microsoft has cribbed the Arduino implementation of the String class to use in its library functions.
Implementing a web server is quite a bit more complicated than lighting a few LEDs. The required libraries use significant portions of RAM, leaving too little room for String to maneuver.
The esp8266 Arduino core web server class for example does use the String class. See here.
Anyway, the same arguments apply to anything which makes the run time unpredictable which would rule out recursion, automatic variables, the new operator etc. etc. and as the amount of available RAM increases with new processor models, so these arguments become less relevant.
But I see this all as a religious argument and of course I've seen most of those links. It's like listening to people complaining about new design rules which prevent them creating huge suites of IBM 360 Assembler code with all the arguments about efficiency and that a high level language compiler can't be trusted to produce optimal code etc. etc.
One thing I am certain about is that similar discussions will continue to rage on until the older generation of programmers has died out to be replaced with a younger generation who want nothing more complicated than dragging and dropping icons to create code.