What I :fp'd at was when he said that the centers move. They don't. Think of it like every other piece moving around the centers. The blue center (on a color scheme where blue is opposite green) is never closer to the green, therefor, it does not move.
Sure the centers move. Try an M move (or even something like an x rotation).
The thing is, many people (you, for instance) define the position of a cube relative to the centers. That is one way of fixing the orientation of the cube, so that if you do a rotation the position of the cube is not affected, which is very useful for things like computer solving programs and BLD.
However, you don't HAVE to do this. You could also fix the orientation of the cube by saying that a certain corner or edge has to be in a given place, which would also give the cube exactly one correct orientation. (This is useful in some circumstances - for example, if you fix a corner then M E M' E' just becomes two center 3-cycles, rather than a position that moves or twists every piece on the cube.) You don't even have to fix anything - you could consider the cube to be in a different position after a rotation, in which case there are 24 solutions. IsoCubeSim does this, actually; when it checks to see something's solved, it doesn't check to see that every sticker is the same color as its center, but just that every sticker on each face is the same color. You can't always fix the centers (like if you're trying to count the number of positions of the 4x4).
Anyway, what I'm trying to say was that if you decide that the position of a cube is defined by the position of its centers, then of course the centers can't move (for you), but you don't have to do that. It's true that the centers can't move freely with respect to each other, but they definitely can move.