Keine Ahnung, wo Du Deinen Endeffekt siehst, aber sie sind (un)sinnig genug, um zu verhindern, den meisten Benutzern mit Anzeigen kleiner gleich 800x600 ein 820x600 Pixel großes Fenster vor den Latz zu knallen.
Sie können eben nicht verhindern, dass das Fenster in vielen Fällen trotzdem zu groß ist, weil nicht alle Leisten usw. berücksichtigt werden. Das Fenster ist größer als der tatsächlich auf dem Bildschirm anzeigbare Bereich, Stichwort virtuelle Auflösungen und mehrere Bildschirme. Habe ich ja schon genannt.
Wenn es schon ein riesiges Popup sein muss, dann ist es allemal besser, sich überhaupt irgendwie um die Umgebung zu kümmern als völlig blind durch die Gegend zu stolpern.
availWidth/-Height löst aber die genannten Probleme von screen.width/-height nicht im Ansatz.
Niemand hat die optimale Fenstergröße versprochen. Es geht eher um Schadensbegrenzung, Du schießt ziemlich weit über das Ziel hinaus.
Es ist eben keine hinreichend wirksame Schadensbegrenzung. Eine solche wäre, auf die Benutzung des screen-Objektes zu verzichten. Und darauf zu verzichten, eine feste Fenstergröße vorzugeben, weil die fehlende Anpassungsfähigkeit ein grundlegendes Problem von Popup-Fenstern ist, dem man nur schlecht mit Abfragen des screen-Objekts beikommen kann. Die Migration von screen.width zu screen.availWidth ist daher ein Tropfen auf den heißen Stein. Das habe ich auch detailliert unter http://molily.de/javascript-popups dargelegt.
Mathias