but having to construct the raw transaction manually is a mess for most people.
You would have to specify the change address and remember that it contains the Bitcoins etc...
The whole process has been made way easier with the
fundrawtransaction command. You don't have to figure out the inputs anymore nor do you have to do anything with determining change outputs. With
fundrawtransaction, you just need to use
createrawtransaction and specify only outputs, no inputs. Then you pass that into
funrawtransaction and it will fill in the inputs and create a change output as necessary. The resulting unsigned transaction can then be signed with
signrawtransaction and broadcast.
Sure the UI could use a bit of work, but it's relatively simple to use if you know how to read instructions.
Core really is not designed for or setup for doing the airgapped machine setup. It is first and foremost a node software, not a wallet or GUI software. If you want a certain feature, you can either implement it yourself or find/hire someone to implement it for you. The Bitcoin Core developers are not your personal slaves to implement everything as you wish. We often have more important things to do related to the network as a whole than to implement GUI features.
If Armory can have a good GUI for this I don't see why Core's client cant.
Because the are for different use cases with the developers focusing on different things.
I don't like how these softwares handle the private keys, I don't find safe the idea of being able to "spawn" your entire private key collection with a single seed,
Bitcoin Core will be switching to creating HD wallets only with Bitcoin Core 0.16. Of course it is still backwards compatible, but new wallets cannot be non-HD.