I'll mention something about pooling, although maybe you already know:
You are reusing the same objects, and so can spawn with a 'hang over' from when you last used them. For example if you are using a rocket which moves via physics, it can spawn again with the same physics still being applied. So the first shot goes straight, you look to the left, then the next shot fires to the right, etc.
So for physics, right before you send the projectile back to the pool, set the velocities to 0 so you have a clean start when you spawn it again.