Apple has fixed this with iOS 7...THANK GOD! It's has been so annoying in my life. Anyhow, the contact is stored in a imaginary "Recents" place.
FIX:
1) create a new iMessage. Begin typing the name that brings up the old contacts. (I had one person who changed their number like 7x over the past five years and although I deleted them, they all stored her and would always return when I would go to text them)
2) klick the "į" next to the contact that you don't want.
3) scroll down to "Remove from Recents" and BOOM!!! MAGIC!!!
I just did this moments ago to about 15 contacts that appeared to be deleted on both of my macs, iPad, iPhone, and iCloud yet have been populating in the iMessage drop down when I wanted to text someone that had this number at one point in the past. This was an supper annoying issue that I am grateful that pole finally fixed.
Godspeed friends!