There is no support for @IdRes and other annotations, which help avoiding bugs during compilation.
I have to say I've no experience using Kotlin, so I won't say about it much.
We are developing an app almost 100% in Groovy. It's been only 4 months I use Groovy for Android (or anything else for that matter), but for me it works well.
So before I go to my language of choice, a few words on Kotlin:
Jake Wharton is one of the most recognizable personas in Android dev community.
He wrote there a comparison of several languages, including Groovy and Kotlin, that could be considered for Android development with some pros and cons for each.
For me personally Kotlin is not ready (yet), because it doesn't have support for Annotation Processing API (JSR 269) or AST transformations.
Groovy (since a release of Gradle 2.4) supports them both and had AST transformations for quite a long time anyway.
A lot of libraries for Android are based on JSR 269, saving you time writing and reading boring code.
Nevertheless I know a few people that develop in Kotlin in production.
So I will try to lay down a few cons I noticed when using Groovy.
Android Studio has a real nice set of features boosting productivity in Android's Java + XML world. This will most likely be the same for Kotlin or other languages.
In Groovy you cannot go directly to layout file by executing "open declaration" action on R.layout.main_activity or R.id.text_view in code. It goes it R.java file, which is useless.
In Java files you can extract resources (e.g. strings) via "show intentions actions", which you cannot do in Groovy files.
There are more of such examples related to Android itself, but these bother me most of the time.
A recent release of Android Studio 1.2 (based on IDEA 14) brings better support to Groovy, but overall it's worse than Java: extracting methods doesn't recognize other places with the exact same code, you cannot move method to another class, etc. Of course I'm not blaming JetBrains for anything here: Groovy is dynamic by nature, and they did a lot of good work to support more and more from this language recently.
Like you mentioned, Groovy will be slower than Kotlin or Java. Using @CompileStatic annotation on each and every class makes it better.
I don't have any benchmarks here. I would really like to see a non-trivial app written in these 3 languages and if, as a user, I can perceive any differences.
Yes, the binary will be bigger by a few MB. Not a big deal for me, but sometimes it can be a problem.
There is also a consequence there that I write about as an answer to your first question below (64k methods).
On the bright side there are all groovy things I learned in the last months: DefaultGroovyMethods, closures, method pointers, currying, etc. and even occasional @CompileDynamic that make you more productive. Writing less code, writing more readable code and reviewing less (and readable) code. Using RxJava without Groovy or Java 8 makes my eyes bleed.