Please note that you are not extracting the normal at boundary vertices in legacy dolfin, as this would not be well-defined.
You are extracting the normal of each facet (which is unique and constant in the case of affine meshes).
The post @francesco-ballarin is referring to is likely: How to compute tangent vectors on facets (2D surface parametrization) - #3 by hherlyng