Yes, it would be AS actually outputting the ELF objects, I didn't realize it was hard coded what AS outputs, thought more like NASM etc where you specify the output.
GCC would still need to pass the correct source (.S) code to AS. For example, -pic doesn't make sense on AOUT but does on ELF for shared libraries as shared libraries don't have fixups like DLLs do. So just guessing, both GCC and binutils would need to target ELF.
Then it is just the question of whether wlink can convert from ELF to a LX binary. Otherwise it would mean converting from ELF to OMF then linking. I know objconv can do it, though by default it has a 15 char symbol limit and doesn't want to add an underline without forcing it to with a parameter.
For C++, there is also a question of symbol mangling, no idea if it varies.