So I think this depends in part on whether we want to have an atomic undo/redo for automatic moves. With your change, every single move in the auto move will be put on the undo stack. The behaviour before was that they were all composed into one "big" move.
If we want to keep the existing behaviour, we would need to modify DealerScene::moveCount() to changes.size() of the undo stack elements and m_currentState into account.
I'm also not sure if auto moves count in all games. So if we decide to keep the current undo behaviour, maybe moveCount should also be virtual, with most classes using the existing implementation, and Freecell doing some special accounting.
Hm, you're right. Now I'm not sure what the intended behaviour is. I've created D27432 as a potential alternative, which preserves the current behaviour, but I wouldn't oppose your change here. As you, I'm slightly worried that this change might break other things, but after playing around with it for a while, I haven't seen anything broken so far.