Is "Separate RGB" identical to "Separate XYZ"?
By looking at the source code  and the note saying :


  /* Vector combine / separate, used for the RGB and XYZ nodes */


They are the same, and they don't use one node probably just to avoid confusion and keep data types separate