Hi,
pooling is meant to be so that you don't create objects, so no, you should not just create the objects again and again, as it defeats the purpose.
instead, yes reset the positions of everything when you are either putting back the object in the pool or when you you take one from the pool. that's do not matter much.
I would not go with one fsm per planks, but maybe one fsm at the top that serialize all positions into cache and you implement a reset event that goes over each objects and put them back into place and set up the rigidbody properly.
you can use arraymaker for storing the cache.
Or you implement some hack where each object default position is 0,0,0, and reseting simply means putting everything back to 0,0,0. maybe that's possible in your case.
Bye,
Jean