My first reaction is that the autocomplete pattern is not the
appropriate solution to the problem being addressed.
For my money, autocomplete is best used when the user is allowed to
enter anything they desire. That is, they are not picking an item from a
predefined list. It's great for searches or filters.
However, if you have a finite set of data that is relatively large, I
think autocomplete can cause more problems for exactly the reasons you
describe. Perhaps it might be better to separate the list of options and
its input selection from the autocomplete input area. Here is an example
(though I'm not a huge fan of this implementation): http://easylistbox.com/demoSpeedSearch.aspx
Our team recently added an Auto Suggest component to part of our B2B
website. The component is a tool for selecting account numbers - we
sell to multiple channels, including distributors and they can have
30, 50, even 100+ account number/location combinations ...