It's really interesting if you look at how CAD handles this stuff. It lets you set the degree of curvature-continuity/smoothness you want—and it kind of takes care of filling in the curve for you. You have to give up some direct control over the curve if you need it to meet these constraints.
Here's what different degrees of curvature continuity look like: http://help.autodesk.com/cloudhelp/2017/ENU/Alias-Tutorials/...
.. or in 2d: http://help.autodesk.com/cloudhelp/2017/ENU/Alias-Tutorials/...
To make smooth surfaces you just need the tangents to line up. This is called G1.
But if you also want surface reflections to look smooth you need a higher degree of curvature continuity. G2 or higher.
http://help.autodesk.com/cloudhelp/2017/ENU/Alias-Tutorials/...