Sachverhalt: A. Die Staatsanwaltschaft Zürich-Sihl führte eine Strafuntersuchung gegen X._ wegen qualifizierten Drogendelikten, mehrfachen Diebstahls, Körperverletzung und weiteren mutmasslichen Straftaten (begangen zwischen 2006 und 2007). Am 23. Januar 2007 wurde er verhaftet und in Untersuchungshaft versetzt. Nachdem der Angeschuldigte am 23. März 2007 aus der Haft entlassen worden war, wurde er am 18. Juni 2007 erneut inhaftiert. Seit dem 2. September 2008 befindet er sich im vorzeitigen Strafvollzug. Mit Urteil vom 20. Januar 2009 (teilweise amtlich publiziert in BGE 135 I 71) wies das Bundesgericht eine Beschwerde des Angeschuldigten gegen einen Haftprüfungsentscheid des Bezirksgerichtes Zürich, Haftrichter, ab (Verfahren 1B_344/2008). B. Am 9. Juli 2009 erhob die Staatsanwaltschaft Anklage beim Bezirksgericht Zürich. Am 30. September 2009 ersuchte der Angeklagte letztmals um Haftentlassung; gleichzeitig beantragte er (im Eventualstandpunkt) die Gewährung von Urlauben und eines "offenen" (vorzeitigen) Strafvollzuges. Der Haftrichter des Bezirksgerichtes Zürich wies alle Anträge mit Verfügung vom 16. Oktober 2009 ab. C. Gegen den haftrichterlichen Entscheid vom 16. Oktober 2009 gelangte X._ mit Beschwerde vom 19. November 2009 an das Bundesgericht. Er beantragt (im Hauptstandpunkt) seine unverzügliche Haftentlassung. Der kantonale Haftrichter und die Staatsanwaltschaft haben Ende November 2009 je auf Stellungnahmen verzichtet. 