Maximizando la compatibilidad con versiones anteriores de los servicios de Google Play

¿Cuáles son las prácticas recomendadas para mantener la más amplia compatibilidad con versiones anteriores de una aplicación de Android y depender de los servicios de Google Play?

La documentación de implementación del desarrollador para usar Android Studio indica compilación contra v5.compile 'com.google.android.gms:play-services:5.+' que con las descargas disponibles que estoy usando parecen terminar usando la versión 5208000. En ese momento recibo errores y advertencias al probar una aplicación:

W/GooglePlayServicesUtil Google Play services out of date. Requires 5208000 but found 5089036
E/GooglePlayServicesUtil GooglePlayServices not available due to error 2

Sin embargo, Admob, mi dependencia de los servicios de Google Play, parece funcionar normalmente. Si sigues la recomendación de Google para llamarisGooglePlayServicesAvailable() yGooglePlayServicesUtil.getErrorDialog(), se le dice al usuario que se requiere una actualización para que la aplicación funcione y se la envía a la tienda donde no hay actualizaciones disponibles.

En otros lugares, mantener la compatibilidad con versiones anteriores significa compilar con la versión API más antigua que admite las funciones que necesita. Así que probé con v4compile 'com.google.android.gms:play-services:4.+' que generó otro error:

E/GooglePlayServicesUtil﹕ The Google Play services resources were not found. Check your project configuration to ensure that the resources are included.

Buscar alrededor indica que este es un informe falso y puede ignorarse.

Si compilo contra una nueva versión de API, y no está presente en el dispositivo, ¿funcionarán las cosas? ¿O tengo que convencer a los usuarios para que actualicen? ¿Es mejor compilar con una versión API más antigua y asumir que las cosas son correctamente compatibles con versiones más recientes que se ejecutan en dispositivos?