A lot of people find scripting languages very productive and we’ve seen quite a few chips now supporting what you normally think of as a scripting language. These high-level abstraction languages are great, until they aren’t. When you need to go under the abstraction and do something complex or you need every cycle of performance, you might have to break your normal tools.
We dislike abstraction layers you can’t break. If C couldn’t embed or call assembly, it wouldn’t be as powerful as it is, for example. Giving advanced users a way to break your abstraction makes it more useful in more situations.