Andere Länder nehmen das viel genauer. Da steckt in jeder Vergangenheitsform eine bestimmte Situation. Im Deutschen wird halt irgendwas verwendet. Vor allem Dialekte sind so unglaublich "freizügig" mit der Vergangenheit was solche Details angeht.
Beispiel: ich ging zur Arbeit. Das sagt in gewissen Regionen niemand. Da heißt es: ich bin zur Arbeit gegangen. Ich wüsste nicht mal ob es bei uns einen inhaltlichen Unterschied zwischen diesen beiden Formen gibt.
Vielleicht ist das "gehabt" auch einfach nur unkonzentriert gesagt, ohne sich bewusst zu sein dass da schon ein "hatten" vorkam.