(Strafverfahren), hat sich ergeben:
A.- P._ wurde vom Bezirksgericht Bülach am 21. Oktober 1997 der mehrfachen Zuwiderhandlung gegen das BetmG sowie des Verweisungsbruches im Sinne von <ref-law> schuldig gesprochen und mit sieben Jahren Zuchthaus bestraft.
Hiergegen legten sowohl P._ als auch die Staatsanwaltschaft des Kantons Zürich Berufung an das Obergericht des Kantons Zürich ein. Dieses bestätigte mit Urteil vom 23. Februar 1998 den erstinstanzlichen Schuldspruch und erhöhte die Strafe auf neun Jahre Zuchthaus.
P._ gelangte daraufhin mit kantonaler Nichtigkeitsbeschwerde an das Kassationsgericht des Kantons Zürich und verlangte die Aufhebung des obergerichtlichen Urteils bezüglich seiner Verurteilung in einem Anklagepunkt (ND 3), in dem ihm vorgeworfen worden war, zwischen dem 14. und dem 27. Februar 1995 mit Kokain im Umfang von rund drei Kilogramm gehandelt zu haben. Er rügte es als eine Verletzung von Art. 6 Ziff. 3 lit. d EMRK, dass das Obergericht auf die Belastungsaussagen einer Auskunftsperson abgestellt habe, obwohl diese ihre Aussagen in der Konfrontationseinvernahme mit ihm "mit grundsätzlich nachvollziehbarer Begründung ausdrücklich widerrufen" habe. Mit dem Widerruf sei ihm verunmöglicht worden, hinsichtlich der früheren Belastungsaussagen seine Verteidigungsrechte wahrzunehmen, insbesondere Fragen an den Zeugen zu stellen, was zur Unverwertbarkeit der Belastungsaussagen führen müsse. Das Kassationsgericht wies die Nichtigkeitsbeschwerde am 18. August 1999 ab.
B.- Gegen dieses Urteil führt P._ mit Eingabe vom 4. Oktober 1999 staatsrechtliche Beschwerde wegen Verletzung von Art. 4 aBV und von Art. 6 Ziff. 1 und 3 lit. d EMRK. Ausser der Aufhebung des angefochtenen Urteils beantragt er, es sei ihm die unentgeltliche Rechtspflege zu gewähren.
Die Staatsanwaltschaft, das Obergericht und das Kassationsgericht haben auf eine Vernehmlassung zur Beschwerde verzichtet.

Das Bundesgericht zieht in Erwägung:
1.- Die Sachurteilsvoraussetzungen der staatsrechtlichen Beschwerde sind erfüllt. Auf die Beschwerde ist einzutreten.
2.- a) Der Beschwerdeführer rügt, dass ihm bezüglich des bestrittenen Anklagepunkts das Recht, Fragen direkt an die ihn belastende Person zu stellen, faktisch nicht gewährt wurde bzw. werden konnte. Nachdem die Auskunftsperson ihre Belastungsaussage nicht nur widerrufen, sondern eine affirmativ, ausführlich und nachvollziehbar begründete Entlastungsaussage gemacht habe, sei es für ihn, den Beschwerdeführer, der die Tat stets bestritten habe, nicht mehr zumutbar gewesen und habe er nicht mehr den geringsten Anlass gehabt, die früheren Belastungsaussagen als virtuell weiterbestehend zu hinterfragen. In einer solchen Situation habe von einer - zwingend notwendigen - kontradiktorischen Beweisabnahmesituation nicht mehr die Rede sein können, wodurch ihm verunmöglicht worden sei, seine Verteidigungsrechte tatsächlich wirksam auszuüben. Dies müsse zur Unverwertbarkeit der Belastungsaussagen führen, unabhängig davon, dass sich Art. 6 Ziff. 1 und 3 lit. d EMRK an die staatlichen Strafbehörden richteten.
b) Gemäss Art. 6 Ziff. 3 lit. d EMRK hat der Angeschuldigte im Strafverfahren Anspruch darauf, Fragen an die Belastungszeugen zu stellen und die Ladung und Vernehmung von Entlastungszeugen unter denselben Bedingungen wie die der Belastungszeugen zu erwirken. Als Aussagen von Zeugen gelten dabei auch jene von Auskunftspersonen, die wie vorliegend formell zugelassen sind, dem Gericht zur Kenntnis kommen und von ihm verwendet werden können. Die Garantien von Art. 6 Ziff. 3 EMRK stellen besondere Aspekte des Rechts auf ein faires Verfahren gemäss Art. 6 Ziff. 1 EMRK dar und wurden bereits aus Art. 4 aBV abgeleitet. Ziel ist es dabei, dem Beschuldigten im Sinne eines fair trials eine angemessene und hinreichende Gelegenheit einzuräumen, eine belastende Aussage zu bestreiten und den entsprechenden Zeugen zu befragen, sei es im Zeitpunkt des Zeugnisses selber oder später. Danach genügt es grundsätzlich, wenn der Beschuldigte im Laufe des ganzen Verfahrens einmal Gelegenheit zum Stellen von Ergänzungsfragen erhält, sei es vor den Schranken oder aber im Laufe der Untersuchung (<ref-ruling> E. 5b S. 284 ff.; <ref-ruling> E. 6a und b S. 133). Erforderlich zur Wahrung der Verteidigungsrechte ist, dass die Gelegenheit der Befragung angemessen und ausreichend ist und die Befragung tatsächlich wirksam ausgeübt werden kann. Der Beschuldigte muss namentlich in der Lage sein, die Glaubhaftigkeit einer Aussage prüfen und den Beweiswert auf die Probe und in Frage stellen zu können (BGE <ref-ruling> E. 6c/ee und ff.).
c) Wie das Kassationsgericht zu Recht erkannt hat und unbestritten ist, führt der Widerruf einer Belastungsaussage im Rahmen einer Konfrontation mit dem Angeschuldigten nicht ohne weiteres zur Unverwertbarkeit der früheren Aussage (vgl. Urteil der Bundesgerichts vom 1. November 1994 i.S. N., E. 3, Leitsätze in SZIER 1995, S. 382 f., Ziff. 6.3.10). Welche Bedeutung den ursprünglichen Aussagen angesichts des Widerrufs zukommt, ist eine Frage der freien richterlichen Beweiswürdigung, die vom Beschwerdeführer im vorliegenden Verfahren nicht angefochten wurde (vgl. <ref-ruling> E. 1 S. 268 f.). Voraussetzung für die Verwertbarkeit der früheren Aussagen ist im Sinne der vorstehend genannten Rechtsprechung, dass diese dem Belastungszeugen anlässlich der Konfrontationseinvernahme vorgehalten werden, er zu den Widersprüchen - auch zur neuen Aussage - befragt wird und der Angeklagte bzw. sein Verteidiger Gelegenheit erhält, Ergänzungsfragen zu stellen, wobei es ihm freisteht, ob er von diesem Recht Gebrauch machen will. Dass diese Voraussetzungen vorliegend nicht erfüllt seien, macht der Beschwerdeführer nicht geltend und ist nicht ersichtlich.
Entgegen der Ansicht des Beschwerdeführers verhält es sich nicht grundsätzlich anders, wenn der Zeuge seine ursprüngliche Belastungsaussage mit einer mehr oder weniger ausführlichen Begründung widerruft. Dies hat einzig zur Folge, dass auch diese Begründung in die Würdigung der verschiedenen Beweisaussagen einzubeziehen ist (vgl. Hauser/Schweri, Schweizerisches Strafprozessrecht, 4. Auflage, Basel 1994, § 54 N. 4 f.). Das Kassationsgericht hat zu Recht festgehalten, dass der Beschwerdeführer nach dem Widerruf der früheren Aussagen und seiner völligen Entlastung durch die Auskunftsperson in der Konfrontationseinvernahme nur vordergründig keinen Anlass mehr gehabt habe, Ergänzungsfragen an die Auskunftsperson zu stellen. So habe er jedenfalls nicht einfach davon ausgehen dürfen, dass die nachträgliche (günstigere) Version der Auskunftsperson im Rahmen der Beweiswürdigung von vornherein die massgebliche sein werde und sich damit Ergänzungsfragen an den Mitangeschuldigten erübrigten. Im Hinblick auf die Möglichkeit des Abstellens auf die ursprünglichen Aussagen, hatte der Beschwerdeführer durchaus Anlass, mit Ergänzungsfragen darauf einzugehen, um deren Glaubwürdigkeit zu erschüttern und die vom Belastungszeugen angeführte Begründung für die Änderung seiner Aussage zu unterstützen.
Der Beschwerdeführer macht nicht geltend, dass es ihm vorliegend aus äusseren Umständen unmöglich gewesen wäre, anlässlich der Konfrontationseinvernahme Fragen an den Belastungszeugen zu stellen. Insbesondere behauptet er nicht und ist aus dem Protokoll der Konfrontationseinvernahme nicht ersichtlich, dass der Belastungszeuge sich geweigert hätte, Fragen zu seinen ursprünglichen Aussagen und für die Gründe seines "Sinneswandels" zu beantworten. Es liegen demnach keine objektiven Gründe vor, aus denen es dem Beschwerdeführer unmöglich gewesen wäre, den Zeugen zu befragen. Vielmehr hat der Beschwerdeführer aufgrund seiner eigenen Einschätzung, es sei nicht mehr erforderlich, Fragen zum Inhalt und zum Zustandekommen der früheren Aussagen zu stellen, vorweg auf eine Befragung verzichtet. Darin liegt kein Fall der Verunmöglichung einer wirksamen Ausübung der Verteidigungsrechte gemäss Art. 6 Ziff. 3 lit. d EMRK. Hier, ohne dass der Beschwerdeführer auch nur einen Versuch einer effektiven Ausübung seiner Verteidigungsrechte unternommen hat, eine objektive Unmöglichkeit der wirksamen Ausübung von Verteidigungsrechten anzunehmen und die ursprünglichen Belastungsaussagen als unverwertbar zu betrachten, führte dazu, dass es ein Angeschuldigter in der Hand hätte, in ungerechtfertigter Weise das Prinzip der freien richterlichen Beweiswürdigung hinsichtlich widerrufener Belastungsaussagen auszuschalten.
Die vom Beschwerdeführer und auch vom Kassationsgericht diskutierte Frage, ob die ursprünglichen Belastungsaussagen nach der Praxis des Bundesgerichts und des Europäischen Gerichtshofs für Menschenrechte trotz der Unmöglichkeit der Befragung des Belastungszeugen ausnahmsweise verwertbar seien (vgl. dazu BGE <ref-ruling> E. 6c/dd S. 135 f.; <ref-ruling> E. 5b S. 285 f., je mit zahlreichen Hinweisen), stellt sich vorliegend nach dem Dargelegten nicht. Sie wäre dann zu prüfen, wenn der Beschwerdeführer von der ihm eingeräumten Gelegenheit zur Stellung von Ergänzungsfragen tatsächlich erfolglos Gebrauch gemacht hätte, weil der Zeuge in der Konfrontation jegliche Aussage verweigert hätte.
3.- Nach dem Dargelegten ist die Beschwerde unbegründet und daher abzuweisen. Dem Gesuch des Beschwerdeführers um Gewährung der unentgeltlichen Rechtspflege ist zu entsprechen, da die in Art. 152 OG genannten Voraussetzungen erfüllt sind.

Demnach erkennt das Bundesgericht:
1.- Die staatsrechtliche Beschwerde wird abgewiesen.
2.- Dem Beschwerdeführer wird die unentgeltliche Rechtspflege gewährt:
a) Es werden keine Kosten erhoben;
b) Rechtsanwalt Stefan Blum, Zürich, wird als amtlicher Anwalt des Beschwerdeführers bezeichnet und für das bundesgerichtliche Verfahren aus der Bundesgerichtskasse mit einem Honorar von Fr. 1'500. -- entschädigt.
3.- Dieses Urteil wird dem Beschwerdeführer sowie der Staatsanwaltschaft, dem Obergericht (I. Strafkammer) und dem Kassationsgericht des Kantons Zürich schriftlich mitgeteilt.
_
Lausanne, 2. Februar 2000
Im Namen der I. öffentlichrechtlichen Abteilung
des SCHWEIZERISCHEN BUNDESGERICHTS
Der Präsident:
Der Gerichtsschreiber: