¿Es suficiente verificar SDK_INT o es necesaria la carga diferida para usar las API de Android más nuevas? ¿Por qué?

Código tal como:

    if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD)
        ed.apply();
    else ed.commit();

produce una advertencia en Froyo:

04-27 03: 40: 35.025: W / dalvikvm (3138): VFY: no se puede resolver el método de interfaz 219: Landroid / content / SharedPreferences $ Editor; .apply () V

Pero entiendo que en dispositivos más antiguos esto sería un RuntimeError que abortaría la aplicación (veraquí yaquí).

Entonces, ¿esta forma de llamar condicionalmente a nuevos API (métodos) es segura en API 8 (Froyo) y superior o hay casos en los que todavía se necesita una carga lenta?

¿Qué cambios en Dalvik hicieron esto posible?

Relacionado

La forma recomendada por Android de admitir de forma segura las apis más recientes tiene un error si la clase implementa una interfaz más nueva. ¿Por qué?Android resolviendo la compatibilidad con SDK_INT hack; ¿esta bien?Android Dalvik Verification en Eclair

Respuestas a la pregunta(1)

Su respuesta a la pregunta