The component editor in the SpriteKit Scene Editor is a way to automatically set up GameplayKit components (GKComponents) - and a corresponding GameplayKit Scene (GKScene) object to contain them - that match your SpriteKit scene.
If you load your SpriteKit scene using GKScene(fileNamed: "foo.sks"), then what you'll get back is a GKScene object that has been pre-configured to have a SpriteKit scene (SKScene) that has all the SKNodes set up in the scene PLUS a series of GKEntities that represent the nodes in the scene file. Each of these entities have any components you defined for that node in them (which are GKComponent objects), and also a GKSKNodeComponent that helps link the GameplayKit entity to the SpriteKit node.
You can get access to your SKScene using the GKScene object's "rootNode" property. You can treat that object just as you already do as if you had loaded the scene with SKScene(fileNamed:"foo.sks"), but now you also have the GKScene that contains logical, behavior-specifying objects that can help organize a more complex project.
Why not just attach components to SKNodes? Because GameplayKit scenes are abstract entities that do not necessarily have an understanding of SpriteKit. Indeed, you could use them for any other type of display (like SceneKit); they merely provide the framework for an Entity-Component system, but it is agnostic to the manner in which the game is displayed.
So in order to tie these together and make those behaviors inspectable and editable in the sprite kit editor, this structure is put in place to separate the "logical" behavior (GKEntity/GKComponent) from the "display" behavior (SKNode). The GKSKNodeComponent is the "glue" that associates the two.
Thus, the line:
sceneNode.entities = scene.entities
...is just giving the scene a "shortcut" to the entities in the GKScene, presumably so that the GKScene object itself could be discarded. It's not a necessary part of the workflow; it's more of a convenience. That's fine if you just need to set some properties of the SKNodes in your scene, but is probably defeating the purpose for more complicated projects; in that latter case, it might be better to just keep the GKScene object around and reference its rootNode whenever you need to go into the SpriteKit scene.
For more information, refer to the GameplayKit reference in the Apple Developer Documentation.