Fatti: A. Nell'ottobre del 2003 L._, A._, C._ e B._ pianificavano la trafugazione di una grande quantità di canapa essiccata (almeno 1'500 kg, pari a circa 40 m3), che si trovava in un vecchio deposito militare situato ad Arbedo (noto come "La polveriera") in cui la polizia cantonale custodiva reperti della cosiddetta operazione "Indoor", scattata nel marzo del 2003 per contrastare la produzione e lo smercio illegali di stupefacenti in Ticino. Il piano prevedeva che la canapa sarebbe stata poi nascosta in un cunicolo sotterraneo lungo circa 75 m nel Comune di Gordola, presso la diga della valle Verzasca, che I._ aveva messo a disposizione di C._ per un mese (il tempo di smerciare lo stupefacente) dietro compenso di circa € 100'000.--, pur senza sapere che la canapa sarebbe stata trafugata da un deposito della polizia. Il ricavo dell'operazione (tra i 4 e i 5 milioni di franchi complessivi, dato un prezzo di vendita attorno ai fr. 3'000.-- / 3'500.-- al kg) sarebbe spettato per il 50% alla fonte che aveva rivelato a L._ l'esistenza del deposito, per il 25% allo stesso L._ e per il restante 25% a C._ e A._, che avrebbero diviso in parti uguali, previo versamento di € 100'000.-- ad B._. I._ sarebbe stato rimunerato con i primi incassi della vendita. Dal profilo esecutivo, mentre B._ si sarebbe occupato di noleggiare i tre furgoni necessari per il trasporto della canapa, A._ si sarebbe incaricato di procurare gli uomini. Egli assoldava così M._, rimasto poi latitante, e G._, che accettavano di collaborare, il primo dietro consegna di 50 kg di canapa e il secondo dietro versamento di € 50'000.--. M._ assoldava poi D._ (cui offriva € 20'000.-- affinché selezionasse, nel deposito, la canapa migliore), E._ (cui offriva € 4'000.-- o 5'000.-- per condurre uno dei furgoni) e F._ (cui offriva €500.-- per prestare aiuto alle operazioni di carico e scarico). G._ assoldava, fra altri, H._, prospettandogli un compenso da fr. 20'000.-- a 50'000.-- per "un furto di sigarette". Il colpo era previsto per domenica 19 ottobre 2003. Quel giorno B._ si allontanava deliberatamente a X._, per crearsi un alibi. A._, C._, G._, L._, F._, E._, D._, H._ e M._ passavano all'azione in serata, unitamente a O._ e a N._, il quale al calar delle tenebre cercava materialmente di forzare il deposito unitamente a L._, mentre gli altri rimanevano appostati nella zona. Sennonché la trancia, il piede di porco e i cacciavite in loro dotazione non bastavano per aprire il deposito e il tentativo falliva. C._, L._ e A._ decidevano cosí di ritentare il giorno dopo. Il 20 ottobre 2003, tutti quanti si ritrovavano in serata. Muniti di fiamme ossidriche, di una motosega con disco da taglio e di una sega circolare, L._, N._ e D._, sul far della notte, cercavano nuovamente di far breccia nel deposito, mentre gli altri attendevano nei pressi. Non riuscendo a far funzionare correttamente le fiamme ossidriche, né a forzare in altro modo le entrate, finivano però per abbandonare i luoghi. Risultato infruttuoso anche questo secondo tentativo, A._, C._ e L._ decidevano di riprovare. B._ noleggiava altri furgoni e si procurava in Italia altre bombole per le fiamme ossidriche. La sera del 26 ottobre 2003, A._, C._, L._, E._, F._, D._, M._ e un non meglio identificato fabbro (ma non più G._ né H._) tornavano in azione. Il fabbro, L._, D._ e F._ riuscivano allora a scassinare il deposito. D._ sceglieva la canapa da caricare sui furgoni, i quali raggiungevano poi la valle Verzasca. L'intera refurtiva veniva nascosta nel cunicolo presso la diga, salvo alcuni sacchi (26,5 kg) destinati alla rimunerazione di M._. Complessivamente sono stati portati via da Arbedo oltre 1'500 kg di canapa. Il tutto veniva poi recuperato dalla polizia lunedì 28 ottobre 2003 in seguito all'arresto di B._, salvo quanto era destinato a M._, di cui si sono ritrovati poco più di 1,7 kg. B. Il 2 settembre 2004 la Corte delle assise criminali in Bellinzona riconosceva: - A._, B._, C._, E._ e F._ autori colpevoli di furto (tentato e consumato), infrazione alla legge federale sugli stupefacenti e danneggiamento; - D._ autore colpevole di ripetuto furto (tentato e consumato), infrazione alla legge federale sugli stupefacenti, contravvenzione alla legge medesima e danneggiamento; - H._ e G._ autori colpevoli di tentato furto e di infrazione alla legge federale sugli stupefacenti; - I._ autore colpevole di complicità in infrazione alla legge federale sugli stupefacenti. La Corte proscioglieva invece: - A._, B._, C._, D._, E._, F._, G._ e H._ dall'accusa di sottrazione (tentata e consumata) di cose requisite o sequestrate; - F._ e H._, parzialmente, dall'accusa di infrazione alla legge federale sugli stupefacenti. In applicazione della pena la Corte condannava: - A._ a due anni e nove mesi di reclusione, all'espulsione dalla Svizzera per sette anni e alla revoca della sospensione condizionale a una pena di diciotto mesi di detenzione e tre anni di espulsione inflittagli il 9 settembre 2002 dalla Corte delle assise correzionali di Lugano, l'esecuzione di quest'ultimo provvedimento rimanendo subordinata all'autorizzazione da parte dello Stato estero della Slovenia da cui l'imputato era stato estradato; - B._ a diciotto mesi di reclusione sospesi condizionalmente per cinque anni; - C._ a due anni e sei mesi di reclusione, aggiuntivi a una pena (dieci mesi di detenzione) inflittagli il 31 ottobre 2003 dalla Corte delle assise correzionali di Mendrisio; - D._, E._ e G._ (in contumacia) a diciotto mesi di reclusione sospesi condizionalmente per cinque anni e all'espulsione dalla Svizzera per tre anni, pure sospesi condizionalmente per cinque anni; - F._ a quindici mesi di reclusione sospesi condizionalmente per cinque anni e all'espulsione dalla Svizzera per tre anni, pure sospesi condizionalmente per cinque anni; - H._ a dieci mesi di detenzione sospesi condizionalmente per due anni; - I._ a nove mesi di detenzione sospesi condizionalmente per due anni. A tutti la Corte computava il carcere preventivo sofferto. A._, B._, C._, D._, E._, F._ e G._ venivano inoltre condannati a rifondere solidalmente allo Stato del Cantone Ticino fr. 38'493.90 in risarcimento del danno. La Corte ordinava infine la confisca di gran parte del materiale sequestrato. C. Contro la sentenza di prima istanza A._ introduceva tempestivo ricorso alla Corte di cassazione e di revisione penale del Tribunale d'appello del Cantone Ticino (CCRP), lamentando arbitrio nell'accertamento dei fatti ed un'errata applicazione del diritto. Chiedeva pertanto la riforma del giudizio impugnato nel senso di un proprio completo proscioglimento. In subordine egli domandava una riduzione della pena a 22 mesi di reclusione (compreso il carcere preventivo sofferto) e una riduzione dell'espulsione a cinque anni, senza revoca della sospensione condizionale alla pena inflittagli il 9 settembre 2002 dalla Corte delle assise correzionali di Lugano. Subeventualiter postulava l'annullamento puro e semplice della sentenza impugnata. D. Il 4 maggio 2005 l'autorità di ricorso pronunciava: 1. Nella misura in cui è ammissibile, il ricorso è parzialmente accolto, nel senso che: a) per quanto riguarda le accuse di furto (tentato e consumato), il ricorrente è prosciolto dai relativi capi d'imputazione e la sentenza impugnata è riformata di conseguenza; b) per quanto riguarda le accuse di infrazione alla legge federale sugli stupefacenti, la condanna del ricorrente è annullata e gli atti sono rinviati a un'altra Corte delle assise criminali per nuovo giudizio e ricommisurazione della pena (principale e accessoria) nel senso dei considerandi. Per il resto il ricorso è respinto. 2. In applicazione dell'art. 297 CPP/TI la sentenza impugnata è così modificata: a) per quanto riguarda le accuse di furto (tentato e consumato), B._, C._, E._, F._, D._, H._ e G._ sono prosciolti dai relativi capi d'imputazione; b) per quanto riguarda le accuse di infrazione alla legge federale sugli stupefacenti riguardo alla canapa trafugata la notte fra il 26 e il 27 ottobre 2003, la condanna di tutti gli imputati è annullata e gli atti sono rinviati a un'altra Corte delle assise criminali per nuovo giudizio e ricommisurazione della pena (principale e accessoria) nel senso dei considerandi. Per il resto la sentenza rimane invariata. E. Contro la sentenza dell'ultima istanza cantonale il Ministero pubblico del Cantone Ticino insorge mediante ricorso per cassazione al Tribunale federale, domandando l'annullamento dei dispositivi numero 1 lettera a) e numero 2 lettera a) della sentenza impugnata ed il rinvio del procedimento all'autorità cantonale per un nuovo giudizio. F. A conclusione delle proprie osservazioni al ricorso A._ postula che esso venga respinto nella misura in cui è ammissibile. B._ domanda la reiezione del ricorso e la conferma della sentenza cantonale. Chiede inoltre che gli sia concesso il beneficio dell'assistenza giudiziaria e del gratuito patrocinio. E._, D._, C._, F._ e I._ si rimettono al giudizio del Tribunale federale. G._ e H._ sono rimasti silenti. 