Why was the Solidity compiler removed in geth 1.6.0? What is the procedure to deploy a contract in geth 1.6.0?
Here is the discussion where it was decided to deprecate eth_compile.
To summarize, it's not really geth's responsibility to compile code. Or parity's. Or any other node's. Continuing to support in-node compilation would force nodes to host compilers written in other languages. In addition, the interface to compile was poor, as there are many more complexities to a compilation process than a single function call could provide. By removing it, several potential cans of worms were preemptively closed.
How do we go on from here?
If you really need solc in your JS code, a JS version can be found here.