AlertDialog es esto un error?

Mi aplicación crea un AlertDialog en el que un usuario ingresa el nombre para guardar. Cuando un usuario hace clic en el botón Guardar, el onClickListener verificará el nombre duplicado. Si el nombre ya existe, aparecerá otro cuadro de diálogo para alertar al usuario de que se reemplazarán los datos existentes. Luego, el usuario tiene la opción de cancelar y volver para cambiar a un nombre nuevo o seguir adelante y reemplazar los datos.
Cuando aparezca el segundo cuadro de diálogo, espero que el primer cuadro de diálogo aún esté visible hasta que llame a despedir. Sin embargo, el primer AlertDialog desapareció antes de que aparezca el segundo AlertDialog. Eso es, se cerrará automáticamente cuando se haga clic en un botón. ¿Es esto un error o por diseño?
Escribí el caso de prueba a continuación, que verifiqué en 3 dispositivos: Nexus S Android 4.0, HTC Rezound Android 2.3 y Motorola Droid Bionic Android 2.3.

Diseño

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     android:orientation="vertical" >

    <TextView 
        android:id="@+id/message"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Some message will be here"
    />

    <Button
        android:id="@+id/show_btn"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" 
        android:text="Show"
    />

</LinearLayout>

Código

public class AlertDialogBug extends Activity 
{
    static final int DIALOG_ALERT_ID = 1;
    AlertDialog alertDlg;  
    TextView message;

    @Override
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

        message = (TextView) findViewById(R.id.message);
        Button showButton = (Button) findViewById(R.id.show_btn);
        showButton.setOnClickListener(new OnClickListener()
        {
            @Override
            public void onClick(View v)
            {
                showDialog(DIALOG_ALERT_ID);
            }   
         });
     }

    private AlertDialog createAlertDialog()
    {
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("Bug?");

        builder.setPositiveButton("OK", new DialogInterface.OnClickListener()
        {

            @Override
            public void onClick(DialogInterface dialog, int which)
            {
                // No dismiss, cancel, finish, or removeDialog,
                // but the dialog will disappear when this button is clicked.
            }

          });

         alertDlg = builder.create();
         alertDlg.setOnDismissListener(new OnDismissListener()
         {

             @Override
             public void onDismiss(DialogInterface dialog)
             {
                message.setText("onDismiss was called");
             }

          });

          return alertDlg;
    }

    @Override
    protected Dialog onCreateDialog(int id)
    {
        switch (id)
        {
            case DIALOG_ALERT_ID:
                return createAlertDialog();

            default:
                return super.onCreateDialog(id);
        }       
    } 

} 

Originalmente escribí el cuadro de diálogo guardar como una actividad con android: theme = "@ android: style / Theme.Dialog". La interfaz de usuario se ve bien en el Nexus S y Rezound pero se ve terrible en el Droid Bionic (el cuadro de edición y el botón solo ocupan la mitad del ancho, la otra mitad está en blanco).

Respuestas a la pregunta(2)

Su respuesta a la pregunta