Ogromną zaletą takie podejścia jest to, że cały emulator można bez problemu zaimplementować w języku wysokiego poziomu, używając w większości kodu zupełnie niezależnego od architektury gospodarza (nieprzenośne będą jedynie fragmenty np. wyświetlające zawartość ekranu, ale możemy to ograniczyć stosując wieloplatformowe biblioteki graficzne). Dzięki temu bez większych problemów możemy kompilować i uruchamiać emulator na różnych systemach i architekturach.
Co więcej, taki emulator będzie działał wyłącznie w trybie użytkownika, nie musi wykorzystywać żadnych uprzywilejowanych instrukcji. Niesie to za sobą istotne konsekwencje.
Po pierwsze taki program jest 100% bezpieczny (oczywiście przy założeniu bezpieczeństwa systemu gospodarza). Nie może (a przynajmniej nie bardziej niż dowolny inny program) doprowadzić do utraty danych ani nawet destabilizacji systemu, co niestety zdarza się szczególnie w przypadku wirtualizatorów.
Po drugie sprawia to, że niejako "za darmo" mamy możliwość uruchamiania wielu emulatorów na raz. Każda z nich operuje wyłącznie na własnych danych - "własnym komputerze", a wykorzystanie jedynie nieuprzywilejowanych instrukcji zapewnia, że nie będą one sobie nawzajem przeszkadzały. Oczywiście taki emulator nie ingeruje w pracę działającego systemu operacyjnego, co w przypadku innych technik wirtualizacji może sprawiać (i sprawia) pewien problem.
Trzeba też zauważyć, że jest to jedyny sposób na uruchamianie programów z innej, niekompatybilnej architektury. W tym przypadku kod binarny nie może być wykonany bezpośrednio na procesorze gospodarza i musi być prędzej czy później zinterpretowany i przetłumaczony.