I've gotten in a habit of molding out low-poly meshes and then using the "smooth" feature to add in the extra detail that I need. Overall this works great because I can make my intended shapes a lot faster. But I do face a few issues with things not smoothing the way I want them to, and I'm wondering if there is a better way to put in the control I need.

Let me give a simple example.

Let's say that this is a piece of a mesh I want to smooth:

Smoothing this shape as it is gives me this:

..Which is nice, but let's say that I wanted a couple of those edges to stay flat, to make something like this:

I do have the option to preserve hard edges, but that option preserves them EXACTLY, giving me this result:

I can imagine there being times when I want those edges to be preserved that exactly, but usually I just want to retain the fact that the object bends sharply there, but still have it follow the curve along the other axis.

I have found that I can bevel the edges, like this:

...which produces this result:

Now that is pretty much exactly what I was looking for in this case, but the beveled edges are a little harder to tweak or change if I find they don't quite work the way I need them. Plus, beveling edges doesn't always work out so well, especially with complex shapes.

I'm wondering what other options there are to fine-tuning the result of smoothing a mesh. Every tool I can put in my belt is something I might need in a particular situation. What other ways can I go about this?