It does check for that and *should* warp a random tile into a cracker one if there are no more moves?
I think it gets a bit squirrely when you continue swapping things around while other blocks are still falling... When do you check if there are valid moves?