Sorry, but I don't understand the rationale behind this change.
Yes, GNU as accepts .Section and llvm-mc doesn't. There are plenty of cases where MC does not recognize uppercase directives. I don't find this (libgloss/arm/linux-syscalls0.S) compelling enough to make MC accept every case-insensitive directive.
Changing the downstream projects may be more straightforward.
The rationale is that the case of a directive has never really been important even though we'd reject anything that isn't lower case. I looked at all the targets in LLVM and none of them specify anything that isn't all lower case (though nothing in the code prevents them from doing so). All the targets GCC supports will accept any case also, though they may document with a set format.
So yes, we could change projects that don't use lower case. It's presumably a small set because Clang has been around a while and that bugzilla is the only issue I know of.
My point is more, was the case of directives ever actually important or was it just implemented that way? Seems to me like the latter. Though I can't speak for other targets hence I've only changed the generic, ARM and AArch64 directives.
Thinking about it, whatever the behaviour it should be documented (perhaps here: https://llvm.org/docs/Extensions.html). Having alignment across targets would be best, which is something for a mailing list discussion. I will post there and put a link back here so you can reply there.