Faits : A. Par jugement du 28 août 2014, le Tribunal criminel de l'arrondissement de La Broye et du Nord vaudois a notamment reconnu X._ coupable d'assassinat et l'a condamné à 16 ans de peine privative de liberté, sous déduction de la détention subie avant jugement. B. La Cour d'appel pénale du Tribunal cantonal vaudois a partiellement admis l'appel interjeté par X._ contre la décision de première instance, par jugement du 14 janvier 2015. Elle l'a notamment libéré du chef d'accusation d'assassinat, l'a reconnu coupable de meurtre et l'a condamné à une peine privative de liberté de 14 ans, sous déduction de 807 jours de détention avant jugement. Le jugement cantonal repose sur les faits suivants. B.a. A V._, à la fin de l'année 2010, X._ a rencontré A._, ressortissante roumaine, qui se prostituait dans un bar sous le pseudonyme de B._. Jusqu'au milieu de l'année 2011, leur relation a été celle d'un client avec une prostituée. X._ est rapidement tombé très amoureux de A._ et a commencé à la fréquenter en dehors du salon. Constatant que X._ lui proposait un soutien financier lorsqu'elle évoquait les ennuis rencontrés par sa famille restée au pays (notamment problèmes cardiaques de la mère), A._ l'a laissé miroiter qu'elle était amoureuse de lui, qu'elle envisageait de vivre avec lui et de changer de profession, ce afin de lui soutirer davantage d'argent. Contractant un crédit pour venir en aide à la jeune femme, X._ lui a remis 30'000 fr. avant qu'elle ne rentre en Roumanie à la fin de l'année 2011, afin qu'elle puisse soutenir sa famille. En mai 2012, X._ s'est rendu en Roumanie dans la perspective de rentrer en Suisse avec A._. A cette occasion, il lui a remis une somme de 20'000 fr., ainsi qu'elle le lui avait demandé en prétendant que ses parents avaient perdu leur logement. Il est rentré seul en Suisse après un court séjour. Dans l'intervalle, il avait entrepris la rénovation de sa maison familiale à l'aide d'un crédit hypothécaire de 150'000 fr., contracté en été 2011, afin de s'y installer avec la jeune femme, à son retour. Au printemps 2012, la prénommée est retournée à V._ à l'insu de X._ pour continuer à se prostituer, sous un autre pseudonyme et après avoir changé de numéro de téléphone. Commençant à craindre la réaction de X._ s'il découvrait qu'elle l'avait trompé sur ses sentiments et qu'elle n'avait pas l'intention de quitter la profession pour lui, elle a saisi le prétexte d'un contact entre lui et son ex-amie (contact pris dans le but d'obtenir une somme supplémentaire de 5'000 fr. pour elle selon ses souhaits), pour rompre avec lui par téléphone, prétendument depuis la Roumanie. Elle a toutefois continué à lui envoyer des messages dans lesquels elle lui disait notamment qu'elle l'aimait, mais qu'elle n'avait plus confiance en lui. B.b. Le 6 juin 2012, commençant à douter de la situation de A._, X._ a fait des recherches sur internet et a découvert qu'une prostituée, se faisant appeler C._, utilisait pour sa publicité les mêmes photos que celles publiées à l'époque par A._ et pratiquait au salon D._ à V._, où la prénommée avait déjà travaillé. Le 9 juin 2012, X._ a passé la soirée avec un ami d'enfance, lequel lui a indiqué que, selon les rumeurs, A._ était revenue en Suisse au printemps 2012 pour travailler au salon D._ et qu'elle était retournée en Roumanie en mai dans le seul but d'y accueillir X._ durant son séjour. Il a ajouté qu'il ne devait pas espérer retrouver ses fonds, ce à quoi X._ a répondu " de toute façon, elle va payer ". B.c. Le 12 juin 2012, X._ a téléphoné à 20h25 à la surnommée C._. Afin qu'elle ne l'identifie pas, il a utilisé une carte SIM achetée la veille et s'est annoncé sous le prénom de E._. Il a reconnu immédiatement la voix de A._, laquelle l'a probablement aussi reconnu et lui a répondu qu'elle ne pouvait pas le recevoir sous prétexte qu'elle était en voyage. X._ est alors sorti pour réfléchir en faisant un tour au guidon de son quad. De retour à son domicile, il a décidé de se rendre à V._ pour obtenir des explications de la jeune femme. Il est allé chercher dans son atelier un des deux pistolets Beretta qu'il possédait ainsi que des cartouches et les a placés dans sa poche. Entre 21h00 et 21h30, il s'est rendu en voiture à V._ et s'est garé à quelques centaines de mètres du salon D._. Avant de quitter le véhicule, il a placé les cartouches dans le magasin qu'il a remis dans la crosse du pistolet. Il a ensuite rôdé autour du salon. Remarquant une caméra de surveillance sur la porte d'entrée, il en a sectionné le câble à l'aide d'une pince coupante qu'il avait sur lui en se hissant au moyen d'un escabeau préalablement repéré. B.d. Peu avant 23h00, X._ a sonné à la porte du salon. Vêtue seulement d'une jupe, le torse nu, A._ a entrouvert la porte. Reconnaissant X._, elle a tenté de refermer la porte, mais celui-ci l'en a empêchée et l'a saisie. La jeune femme s'est alors mise à se débattre et à hurler. X._ a essayé de la convaincre de sortir pour s'expliquer, mais elle a refusé et a continué à résister. Il l'a alors frappée au visage et l'a blessée, ce qui l'a fait saigner. Il a ensuite sorti le pistolet de sa poche, a remonté le foulard qu'il portait sur son visage pour se dissimuler et a entraîné la victime à l'extérieur, d'abord dans l'impasse bordant le salon puis sur la rue. Comme elle résistait toujours et criait, il l'a tirée par le bras et par les cheveux au moyen de sa main gauche, sa main droite tenant le pistolet. En chemin, il a fait un mouvement de charge et armé le chien. Dans la rue, très calme, il a continué de tirer sa victime sur une dizaine de mètres en direction de sa voiture. Avant d'atteindre le trottoir, A._ a cessé d'avancer et s'est affaissée. X._ lui a fait face, puis a dirigé le canon de son pistolet à très courte distance du visage de celle-ci, qui était presque agenouillée devant lui les bras tendus et essayait d'écarter l'arme en prenant son poignet droit, et a tiré un premier coup de feu. La balle a pénétré dans le crâne, pratiquement entre les deux yeux, a traversé le cerveau et a fini sa trajectoire près de l'omoplate. Sous l'impact, la jeune femme a été projetée en arrière sur le dos. X._ s'est alors penché sur elle et lui a dit " tu es morte ". Un deuxième coup de feu a été tiré, qui n'a toutefois atteint aucune cible. X._ s'est à nouveau approché de sa victime et après l'avoir observée brièvement, a tiré une troisième balle à bout portant ou à bout touchant. La balle, qui a transpercé la boîte crânienne, a été retrouvée dans les cheveux de la victime. Ensuite, X._ a tranquillement ramassé les douilles sur la chaussée, avant de se diriger, d'abord au pas, puis en courant, vers sa voiture. Sur le chemin pour rentrer chez lui, il a jeté les douilles par la fenêtre de la voiture. De nombreuses personnes, qui étaient à leur balcon ou dans la rue, ont été témoins de toute la scène. B.e. L'autopsie et les analyses balistiques révèlent que le décès de la victime est dû aux lésions cranio-cérébrales et thoraciques provoquées par les deux projectiles provenant de l'arme de X._. C. Le Ministère public forme un recours en matière pénale au Tribunal fédéral contre la décision cantonale et conclut, principalement, à sa réforme en ce sens que X._ est reconnu coupable du chef d'assassinat et condamné à une peine privative de liberté d'une durée de 16 ans. Subsidiairement, il conclut au renvoi de la cause à l'autorité cantonale pour nouvelle décision dans le sens des considérants.