Is there a way to remesh an object to match the shading?
I figured out a solution.
By marking the 'Sharp' edges as 'Ceases', and then using the 'Subdivision Surface' modifier (which lets you acknowledge creases). This seems to smooth everything out really well, without the need for shaders.

Tab into edit mode, and select the edges that you want to preserve, right click and mark as creases (or Shift-E and drag)
Tab out of edit mode, and select the Subdivision modifier
2a. Toggle 'Use Creases'
2b. Step the 'Viewport' (or whatever's relevant) setting up until you meet the desired smoothness
Apply