At least on ELF, it's impossible to tell without disassembling the code whether two globals with the same section marking were merged: the merged global uses "private" linkage to hide its symbol, and the aliases look like regular symbols. I can't think of any other reason to disallow it. (Of course, we can only merge globals in the same section.)
The weird alignment handling matches AsmPrinter; our alignment handling for global variables should probably be refactored.
This transform is very profitable for one proprietary codebase I've been looking at, which uses a lot of globals with section markings.