For the hard shaded look you need one normal on each vertex for every adjacent face. I don’t know if Unity’s terrain system is capable of doing that though.
For a mobile friendly version I can only think of:
playing with the triangle sizes, the smaller the more vertices
breaking down the terrain into chunks, for every change affects the whole mesh and recreating the whole thing will cost a lot. Create smaller terrain tiles instead
Use the static batch utility to batch together what’s newly created.