While the code does not really required normalized direction vectors, it would be good for consistency to enforce that. The way forward is probably to add this to optical element testing to identify optical elements that distort the normalization and then see if that's OK (and just re-normalize after passing through that element) or indicative of a bug.