Faits : A. A._ a fait l'objet d'une instruction pénale pour plusieurs assassinats, conduite par le Ministère public du canton de Genève (ci-après: le Ministère public). Le prévenu a requis une première fois, le 31 août 2012, la récusation du Procureur Yves Bertossa (ci-après: le Procureur), en raison de ses liens prétendus avec l'association B._, laquelle s'était jointe aux dénonciations formées contre A._ et s'était impliquée pour obtenir l'arrestation du prévenu et l'audition de témoins à charge. Cette demande de récusation a été rejetée le 15 octobre 2012 par la Chambre pénale de recours de la Cour de justice du canton de Genève (ci-après: la Cour de justice), les motifs allégués ne permettant pas de fonder un soupçon de prévention du Procureur. Par arrêt du 10 janvier 2013 (1B_685/2012), le Tribunal fédéral a rejeté le recours formé par A._; alors qu'il était avocat, le Procureur Bertossa avait relu et corrigé bénévolement, en 2003, un ouvrage publié par B._; il était aussi intervenu aux côtés de cette association; toutefois, aucune de ces interventions, qui remontaient à dix ans, n'était en rapport avec A._, le Guatemala ou l'Amérique centrale; le manque de réponse aux nombreuses questions du requérant, les souvenirs imprécis du magistrat et les irrégularités de procédures alléguées ne constituaient pas non plus des motifs de récusation. B. Le 13 décembre 2012, A._ a sollicité une deuxième fois la récusation du Procureur Bertossa, notamment au motif que celui-ci, lors de l'audition d'un témoin, n'avait pas relevé les contradictions existant avec ses déclarations antérieures filmées par B._ et n'avait pas autorisé l'enregistrement de cette audition. Il lui reprochait aussi de ne pas avoir fait figurer les DVD de B._ dans la copie du dossier qui lui avait été remise. La Cour de justice a rejeté cette deuxième demande de récusation. Le recours formé par A._ contre cet arrêt a été écarté par le Tribunal fédéral, par arrêt du 19 avril 2013 (1B_86/2013). A._ a déposé une troisième demande de récusation, le 9 mars 2013, vu la manière dont les auditions avaient été menées entre les 4 et 8 mars 2013. Il a également fait grief au Procureur Bertossa d'avoir eu un entretien à huis clos avec l'avocate de la partie plaignante lors d'une suspension d'audience. Le 6 avril 2013, il a à nouveau requis la récusation du magistrat prénommé, au motif que celui-ci aurait tenté d'intimider un témoin à décharge produit par la défense. Par arrêt du 6 mai 2013, la Cour de justice a rejeté cette troisième demande de récusation. Le Tribunal fédéral a rejeté le recours interjeté contre cet arrêt, le 9 août 2013 (1B_205/2013) : aucun des motifs avancés par le recourant ne permettait d'admettre l'existence de circonstances exceptionnelles justifiant la récusation du Procureur. Le 26 juillet 2013, A._ a formulé une quatrième demande de récusation. Il a reproché cette fois au Procureur de ne pas avoir répondu à la question posée par ses conseils le 23 juillet 2013, "avez-vous été membre de l'association B._?"; ce silence constituerait une démonstration évidente de partialité. Dans ses observations devant la cour cantonale, le Procureur a précisé qu'il n'était pas membre de B._ et qu'il ne se souvenait pas avoir jamais demandé à en faire partie. Par arrêt du 19 août 2013, la Cour de justice a déclaré irrecevable la requête en récusation pour cause de tardiveté. Le Tribunal fédéral a rejeté le recours déposé par A._ contre cet arrêt, le 30 octobre 2013 (1B_312/2013) : il a considéré que la Cour de justice n'avait pas violé le droit fédéral en déclarant la requête tardive et donc irrecevable, au motif qu'elle n'avait pas été présentée "sans délai" au sens de l'art. 58 al. 1 CPP. C. Par jugement du 6 juin 2014, le Tribunal criminel du canton de Genève a reconnu A._ coupable de plusieurs assassinats et l'a condamné à une peine privative de liberté à vie. Le 29 septembre 2014, A._ a adressé une déclaration d'appel du jugement de première instance devant la Chambre pénale d'appel et de révision de la Cour de justice du canton de Genève. Au terme de cette déclaration de 115 pages, il a notamment conclu à son acquittement. Le Ministère public a formé un appel joint, le 27 octobre 2014, concluant à ce que l'appelant soit reconnu coupable des chefs d'accusation dont il a été acquitté par les premiers juges. A cet acte était annexé un échange de correspondance entre l'association B._ et le Procureur Yves Bertossa: par courrier du 16 juin 2014 adressé au Procureur à son adresse au Ministère public, B._ annonçait, "suite aux mises en cause qui ont été relayées dans les médias au sujet d'une prétendue proximité entre vous et notre association", vouloir demander la publication d'une tribune, rédigée par un membre de B._, qui "souhaitait réaffirmer que vous n'êtes et n'avez jamais été membre de B._"; l'association avait besoin pour "des questions de protection des données", de l'accord du magistrat pour rendre cette information publique; le Procureur a répondu le lendemain qu'il n'était pas nécessaire que "mon absence d'appartenance à votre association, passée et présente", soit confirmée publiquement par celle-ci, de sorte qu'il ne lui donnait pas son accord. Le 17 novembre 2014, A._ a formulé une cinquième demande de récusation, au motif que le Procureur a refusé de répondre à trois questions suscitées par les courriers des 16 et 17 juin 2014: les interrogations portaient sur son appartenance passée à B._ et aux donateurs de cette association ainsi que sur les données personnelles dont disposait B._ le concernant. Dans ses observations devant la cour cantonale, le Procureur a exposé que le courrier qu'il avait reçu de B._ et la réponse qu'il y avait apportée ne constituaient pas des faits nouveaux, dans la mesure où ils confirmaient simplement "l'absence d'appartenance à B._"; le courrier de l'association avait manifestement été écrit pour faire suite aux informations erronées relayées dans la presse; sa réponse consistait simplement à refuser, au motif qu'il n'était "pas opportun d'instruire les causes par voie de presse"; ces courriers avaient été joints aux observations du Ministère public à la Chambre d'appel et de révision car la défense était revenue, dans son appel, une nouvelle fois sur ce thème en sollicitant l'audition d'un témoin, dans le but de déterminer s'il avait été membre de celle-ci; ces courriers avaient été produits pour clore définitivement le sujet; la référence de B._ à la protection des données était motivée par le fait que "les associations ne peuvent divulguer publiquement qui est membre ou non de leur association sans l'accord des personnes concernées"; enfin il n'était pas donateur de B._. Par arrêt du 2 février 2015, la Chambre pénale de recours de la Cour de justice du canton de Genève a déclaré irrecevable la requête en récusation pour cause de tardiveté, le courrier du 16 juin 2014 ne contenant pas d'information de nature à faire apparaître un nouveau délai pour déposer une demande de récusation au motif pris des liens supposés entre cette association et le magistrat. D. Agissant par la voie du recours en matière pénale assorti d'une demande d'assistance judiciaire, A._ demande principalement au Tribunal fédéral d'annuler cet arrêt, d'ordonner la récusation du Procureur Yves Bertossa et d'annuler les actes de procédure auxquels ce dernier a participé. Il sollicite subsidiairement qu'ordre soit donné au Procureur de répondre aux questions qui lui ont été posées par courrier du 5 novembre 2014 et de convoquer le directeur de B._ en qualité de témoin. Invités à se déterminer, la Cour de justice se réfère à son arrêt, sans observations, alors que le Procureur Yves Bertossa conclut au rejet du recours. Le recourant a déposé de nouvelles observations, le 23 avril 2015, persistant dans ses conclusions.