When you instantiate an object, it will always be at 0 0 0 first until the position is updated. Certain Unity components start all their logic in Awake or OnEnable (like the line renderer, I'm guessing?). Awake and OnEnable are called as soon as you call Instantiate(), and before you get a chance to set the transform's position and rotation.
If you don't want this behaviour, pass "null" for the prefab name. This will result in an empty game object being passed to the RCC function which you can then position first, then use AddComponent to add the elements you need, effectively building it dynamically. You can also instantiate a child object here, creating it from a pooled object list containing disabled game objects, set its position and only then enable it. This would bypass the Awake/OnEnable limitation as the object will be enabled only after the position has been set.
For objects that will only exist for a short time and travel with an expected path that doesn't need to be synchronized past the initial initialization (such as bullets or grenades), I strongly advise you to use RFCs instead of RCC to spawn them. RCCs require an object ID to be created and the object to get added to a list of persistent objects. RFCs don't. You can call a one-time (non-saved) RFC to spawn your projectile instead of calling the Instantiate method.