I think that it can be both. Yes, weird code will produce weird results but in my opinion, the language should at least help one find the weird code.
it actually aids in writing faster (more JIT-friendly) code by alerting you to these implicit type mutations/coercions.