Because data in pytables are stored in a dtype that were used when it was constructed. If floatX is not changed the dataset data would be still in original dtype, and other variables would be in floatX and it causes an error.
And when you're wiring back the data it should be same dtype as the original.