Difference between spawning actor in code and blueprint

I just spent a while trying to get an actor to attach to another actor immediately after spawning it and actually keeps its relative position. After debugging the code to verify what was going on (it’s transform was absolute instead of relative) I tried spawning and attaching in blueprint instead of C++. This worked the way I expected, so my question is: what is the difference between using the Spawn Actor From Class node vs. UWorld::SpawnActor?