No the whenStable() does nothing if you test without async or fakeAsync. What whenStable() does is to wait for all tasks in the test NgZone to complete. When you don’t test with async the NgZone does not get created at all and whenStable() just returns immediately.
If you want more detail check the code for ComponentFixture in GitHub.