Le raisonnement est tout à fait correct. Si vous n'êtes pas convaincu je vous conseille simplement d'écrire le raisonnement complet et uniquement à coup de "Soit x" et d'implications logiques pour voir qu'à aucun moment le fait que X>0 ne joue un rôle.
Il y a 3 propositions importantes dans votre raisonnement.
P1 : Soit p un polynôme dans C. Alors il se factorise selon ses racines: p(x) = k (x - a1)(x - ...)(x - an)
P2 : Soit X dans C. Alors 2X2 - X - 1 = (2X + 1)(X - 1)
P3 : Soit X>0. Alors 2X2 - X - 1 = (2X + 1)(X - 1)
P1 est vraie d'après votre théorème.
P2 est la conséquence directe de P1.
P3 se déduit trivialement de P1.
Plus formellement, il faut bien faire la différence entre le théorème sur le polynôme (P1) et le théorème sur X (P3).
La preuve de ce théorème repose en effet sur le fait que P est un polynôme dans R (donc pas vrai si on impose X>0 aux valeurs de la variable).
Par contre, dans votre exemple, vous prenez bien un polynôme dans R. Même si vous savez secrètement que le X qui vous intéressera plus tard est dans R+, le théorème sur le polynôme lui s'applique dans R (en fait, un polynôme par définition ne peut même pas être à valeurs dans R+, car l'inconnue doit être dans un anneau). De ce théorème vous déduisez une propriété P(X) vraie pour tout X dans R. Puis vous en déduisez trivialement qu'elle est vraie pour tout X>0. Non pas grâce aux propriétés des polynômes mais grâce aux propriétés des propositions. Si P(X) est vrai pour tout X dans A, alors P(X) est vraie pour tout X dans un sous-ensemble de A.
En particulier votre preuve reste tout autant vraie pour X dans N, ou pour X posé égal à 42, etc.