For example you've box-modeled your character's leg to a point it's a kinda cylinder with 8 sides. You need more detail, so you edge-loop-split all the sides lengthways. You get 16 sides but the shape is wrong now, so you manually tweak all those new vertices outwards to bring back the earlier curvature of the shape - most times needing to do it one by one. A lot of hard work. Maybe you could automate this.
I don't know enough math to determine the curvature of the surface and script this thing correctly, but I made an ugly hack that kinda works. I took the liberty of adding a couple of procedures to the MJPolyTools, that you can test (after sourcing the edited MJPolyTools (http://www.freewebs.com/tommitissari/mel/MJPolyTools.mel)) by selecting an edge and executing roundLoopSplit; You need to have closestPointOnMesh plugin loaded for it to work.
The way it works is it makes a smoothProxy of your model and looks at the neighbours of the vertices about to be born from the splitting and calculates and averages their distance to the smoothProxy, and then after the split it moves those new vertices to that distance from what the smoothProxy shape used to be before the split.
So I guess if it worked just right, splitting simple 1x1x1 cube many times would result a sphere, but here it ends up with a kinda round gob.
Here's an image to explain the idea yet again and maybe someone will find the motivation to write this into something that actually works correctly.