Implementation details are often also defacto features, because the behavior may be relied upon by users. Unless you designed the language up front to consider these things, it's often very much a challenge to tell your users that their code is broken, especially if you did not have a language specification clarifying it.
For languages like Python for example, this is a big issue, and reason why alternative concurrency patterns to async/await haven't made much progress.