I'm not sure I follow? If I run the first ALTER query directly on the server, with WordPress completely out of the mix, it throws that same error. Is that what you were getting at?
I've found similar questions on stack overflow and the like, but the answer is always just "you're doing it wrong, use MODIFY/CHANGE instead" with no explanation of why it's wrong. I can't find any documentation or bug reports that say WHY the behavior changed, or why it was ever different, and that's what I'm trying to figure out.