It's not as bad as it seems because the language already have constructors.
So instead of having a peculiar case for constructors, you unify constructors and methods by saying that void does not have to be specified.
And i do not buy your argument that it will break the grammar, the parser of javac consider constructors as methods.