Why do you believe it's bad? I've done a formal review of languages for two start-ups, and I don't recall seeing a single statically-typed language created in the 21st century (2000-) that didn't use type inference. In computer science it's considered universally true that a variable should be declared as close as possible to where it is first used (in Pascal it's the old page-up, page-up, page-up... sigh). Pascal's declare-everything-upfront design was necessitated by Wirth's use of a single-pass compiler design to save memory. There's simply no need in 2015 to clutter code by pedantically declaring every variable and the good old page-up, page-down (no, IDE improvements should not be used to cover up language shortcomings).
I'm a supporter of such a construct for the sake of readability. It's not only for the compiler, but more for the human. It reduces reading complexity due to mixed declaration-execution, which quite the contrary with your saying, clutters the code more than separated declaration-execution. Page up-page down is better since it's consistent, rather than unpredictable up-down because the variable could be declared nearly everywhere.
If you think of languages as organisms that evolve and pass on their good ideas to future languages, then the notion of defining every variable in a pre-defined section was an evolutionary dead end. Other than COBOL and close Pascal cousins ADA and Eiffel, absolutely no language in decades adopted the notion. Certainly no popular language today uses it.
So what? I'm not making Pascal another language. This concept is good, no popular uses it is another thing. Who says popular = better?
If you were trying to convince a C++, Ruby, Java developer to use Pascal, how would you answer them when they asked why they had to declare all of their variables beforehand, especially when they point out that the Handley-Millner type inference algorithm has existed for 30 years? And if we can't answer, where does the next generation of Pascal developers come from?
I won't try to convince them to use their other-language-mind to code Pascal. If you want to code in Pascal, think in Pascal. I accept the lack of static checking and undetectable variable shadowing in PHP/Ruby/Lua/any language without variable declaration and dynamic typing, I accept the lack of simple procedural coding when coding short simple programs in Java, I accept the lack of modular programming when coding in C/C++, why shouldn't they accept Pascal concept if they have to code in Pascal? FYI, Handley-Millner type inference algorithm is not perfect for imperative languages. In certain simple cases, they might be applicable. But the lack of type inference again improves readability because readers quickly know what the type of a variable is. With type inference, only the compiler knows, at least without analyzing the code deep enough. At the very least one must read documentation or even actual source code.
x := StringsReplace(SomeText,['a','b'],['x','y'],[rfReplaceAll]);
Without ever knowing what StringsReplace is, how do you know the type of x? How are you sure that it returns replaced copy of the string instead of returning the number of successful replacements with the string itself is modified inplace?