Deform mesh along two curves
You can achieve kind of that modeling manually.

Select 2 curves, join them, convert to mesh and use Bridge Edge Loops to fill space between them:



Add a loop cut, select it, P to separate selection, and delete new created loop. Enter Edit mode of that separated selection, and extrude it in one of horizontal (in my case) directions:



Join 2 meshes, in Edit mode select outer loops and use again Bridge Edge Loops tool to make faces between them.



I added 2 loopcuts to define another form of the mesh and scaled them by X axis with Pivot set to central loop so to make them not on the default position.
After deleting non-manifold geometry the mesh became like this:



And this is what is done with this technique as for torus:



On the left is the curve I used to define that shape, on the right - the resulting mesh.

It's not ideal and automated, but you may always refine loops' position so it to look in another way.



Advantages

The only one as for me (comparing to Lattice using) - is that you definitely use curves you create to define the shape of the resulting meshes.