The point separate node was failing in situations where one of the outputs was empty. In addition, the code was not structured very well. This new implementation stores less temporary information, is more geometry component type agnostic, and is more self-descriptive. It also solves the problems mentioned above. Fixes T86573 Differential Revision: https://developer.blender.org/D10764