The recalculate normals is in blender. As far as issues with normals in blender, I've only noticed that it seems they don't get updated if the orientation of an object is changed while
not in edit mode (no problems with translations). This in blender 2.79 + plugin from vlad. The workaround is "always work in edit mode".
Other than that, the normals only require attention in regards to "what surfaces do you want smooth and where do they end", and this is managed by controlling what vertices are shared between faces. E.g., a cylinder should have 3 such surfaces: the round part and the 2 caps (where needed of course). This means that the vertices have to be duplicated so they are not shared by the caps and the round part, as is the default in a new cylinder object.
There are probably better/easier ways to do this in blender, but I control this by separating the surfaces that I want smooth into new objects, doing the remove doubles command in each object (which merges vertices that are in the same location), and finally merging all into one object. So for the cylinder, this would mean selecting the round part (selecting faces is better), separate (no remove doubles should be needed is it is a newly created cylinder) and then merge the caps back with the round part.
You can think of the way the meshes are illuminated in Orbiter (and probably many other programs) as the light level of one triangle being "shared" with its neighbor triangles (i.e., triangles that use the same vertices). This is how the round part of the cylinder looks smooth, as they share the same vertices.
This is why it is important to control the vertex usage, at least from an Orbiter point-of-view.
How does this affect normals? Well, the normals in the Orbiter mesh format are saved in the vertices, and AFAIK each triangle gets its normal calculated by averaging the normals of the 3 vertices that make it up. Continuing with the cylinder, if a vertex is shared between the cap and the round part, then its normal is going to be tilted somewhere between the cap and the round part. When calculating the normal of a triangle in the cap (which should be all up or down) that "tilted vertex" will make that surface normal... hmm not so normal
, resulting in weird lighting.
Is there an issue with a/all blender versions? Or is it the plugins? Or both? I don't know, but with my process above, I can't complain about the results.
BTW: on top of this you have to consider UV coordinates, which might create the need for new vertices, e.g., wrapping a cylinder round surface will create a seam somewhere as one has to "unroll" that 3D surface into 2D. I think there is a way around this "ugly" issue... if I remember I'll post something when I get to the UV mapping phase of SSV. Anyway, this is not a big issue, the core of this normals business is in the previous lines.