It's currently possible to set symmetric axis by calling SetRangeUser with appropriate bounds.
It would be nice to be able to require the axis to be always drawn symmetrically so it gets calculated automatically (so whatever data is drawn/added the automatic axis is symmetric). I think most of the time it would be around 0 (for example when doing a residual plot), but that could be a configurable number.
This could be a canvas (like the Log axis) or an axis (like SetRangeUser) property, not sure what would be easier.
PS: One of the use cases where I do this often is when I have a COLZ TH2D plot with a palette like kTemperatureMap and want to make sure the 0 is at the "white" region.