I have found that after paths are unioned, their control points are essentially lost. In other words point.x = point.ctrl2.x instead of the original control point value.
Is that the correct behavior or should the path's control points have been preserved from the original path before the union takes place?
Yes, the compound operations work by flattening the paths and thus essentially removing all curving data. This is not correct or incorrect behaviour in and of itself, it's just the limitation of the specific algorithm behind it that was used. This is of course less than ideal but it's only apparent in NodeBox 1. NodeBox 2 does have compound operations that preserve the curving data of paths, so you may want to check there.