This behavior is a regression in 4.12. Essentially we switched to attaching child components as part of the OnRegister() logic. This caused all root-level SCS components (including non-scene component types) to register first, followed by child-level SCS components.
See the UDN post for more details.
Note: "Native" non-scene components (i.e. those created in C++ can have a dependency on the root component set by SCS execution - in that case, the native non-scene component registration should be deferred until after SCS execution has set up the root component for the Actor instance. This can be tested as follows (example):
Expected result: SCS scene component instances (including children) are registered BEFORE non-scene SCS component instances.
There's no existing public thread on this issue, so head over toAnswerHub just mention UE-35690 in the post.