Hi,
I know this problem (u.sub() does not work in Nedlec Space) very well. It results from the definition of the N1curl elements, you have only 6 DOFS per tetrahedral element which belong to magnitudes on the edges, the direction is stored implicitly. My good working workaround is just interpolating on a Lagrange-Space:
mesh = UnitCubeMesh(10, 10, 10)
V_ned = FunctionSpace(mesh, 'N1curl', 1)
V_cg = VectorFunctionSpace(mesh, 'CG', 1)
... solve e.g. "E_ned" on "V_ned" and interpolate afterwards
E_cg = interpolate(E_ned, V_cg)
Now you can use u.sub() to extract single components
E_x = E_cg.sub(0)
E_y = E_cg.sub(1)
E_Z = E_cg_sub(2)
Hope it is still helpful. If you have further questions about Curl-problems, just write me a PM