Implicit width conversions are more often than not mistakes and their behavior may be undesirable.
They are very easy to workaround: if your wire has a larger width than the port, use an index, for example, and if your wire has a lower width than the port, explicitly concatenate it to 1s or 0s if it's an input or declare a wire called "unused" and concatenate it as your output.
IMO Verilog is not nearly strict enough as a language about these things. This should have never been allowed.