codefinger
The point we're at now reminds me a lot of Java in 2010. Everything was complex--too complex--and the "best practices" led to operational toil. The 12-factor manifesto ushered in a period of simplification that brought us out of big enterprise web servers, and into containers with executable jar files.
Similarly, the cloud-native ecosystem is brimming with complexity. It's time to establish patterns that result in more scalable, portable, and maintainable apps. Updating the 12-factor is how we'll do it.
Using buildpacks to create an Nginx Docker image
To your second point, Buildpacks are written in code too. But unlike Dockerfile, they use real programming languages that you can write tests for.
For example: https://github.com/paketo-buildpacks
10 Rules for Writing Well
Buildpacks Promoted to CNCF Incubation
Why your buildpack Docker images were created 40 years ago
Comparing Cloud Native Buildpacks to Herokuish
The Software That Saved Apollo 11
Defence Against the Docker Arts
Our determination to officially support a language is based on numerous factors including community demand, relationship with other technologies, suitability to the platform (C++ is really popular but not for web apps), and more. In any case, I wouldn't read too much into our support--it's not a determination on the language itself.
Fun fact: Clojure was the first JVM language supported on Heroku back in 2011 (even before Java itself)! https://blog.heroku.com/clojure_on_heroku
Today, Heroku support Java (with Maven or Gradle), Scala, and Clojure buildpacks. JRuby is supported via the Ruby buildpack. Buildpacks are the mechanism that prepares each app for production, so in some ways our support is more tightly coupled to the build tools than the language. That's why we don't have a Kotlin buildpack (it can use the Maven or Gradle buildpack accordingly). In fact, there's nothing specially you need to do to run a Kotlin app on Heroku, so we have some docs and there isn't much more to say about it. We've also worked closely with the Kotlin folks to make sure the ecosystem plays well with Heroku.
Let us know if you have any trouble with Clojure on Heroku. Stackoverflow.com is a great place to start (and I personal try to watch for questions tagged with "Heroku" and "Clojure").