Subdivision while keeping Volume for Level of Detail
With Blender 2.82 out, there is a good enough method to keep the volume while subdividing the whole mesh without actually using the subdivision modifier.

It's the Bevel modifier.
Select the percent method and set the value to 50%.
uncheck the clamp overlap option and now, you might notice there are now duplicate vertices.


But there is a new modifier: weld; and its job is to get rid of those in a non-destructive manner, so you can keep your bevel modifier.
you can then add as many segments and tweak the profile as much as you want.
Make sure to set the outer Milter to "patch" for concave meshes.

As you may notice, the subdivision isn't as perfect as the subdivision modifier,
so you might encounter problems like 
In that case, buff the distance of the weld modifier juuust until it fixes everything.


After that, you can add a subdivision modifier for a better edge flow and tweak the profile of the bevel (even the custom profile works) if it looses too much volume to your taste.