Musisz dodać domyślne rozszerzenie inaczej nie będzie działać prawidłowo. Domyślne rozszerzenie niczego nie zmienia, to nie musi być nawet rozszerzenie występujące w filtrach, ale coś tam być musi. To domyślne rozszerzenie nie ma wpływu na to jak plik zostanie zapisany, gdyż po wybraniu filtra i tak zostanie zapisany z wybranym filtrem. Jeżeli filtra nie wybierzesz to plik zostanie zapisany z pierwszym filtrem na liście gdyż decyduje o tym nie właściwość DefailtExt lecz FilterIndex. To prawdopodobnie błąd biblioteki w środowisku C++Builder XE2, gdyż np. podobny komponent, wyglądający lepiej
LMDSaveDialog już tego nie wymaga.
Proponuję przed przywołaniem okna dialogowego wyczyścić FileName:
SaveDialog1->FileName = "";
if( SaveDialog1->Execute() ) Memo1->Lines->SaveToFile( SaveDialog1->FileName );
To oczywiście niczego nie zmienia jeśli chodzi o DefaultExt. Ja tam na ogół wstawiam gwiazdkę.