Currently, the bindings in autocomplete.xml have code that is specific to the browser URL-bar. This is making debugging, maintaining, and changing things very difficult. URL-bar specific code should be moved to the relevant bindings in urlbarBindings.xml, which inherit from the bindings in autocomplete.xml
I'm assuming you're referring to most of the "autocomplete-richlistitem" binding? We should consider the compat cost of moving some of this code out of the toolkit, but I think we probably have a lot of leeway given that it's pretty UI-specific, as you mention. Fennec, for example, already redefines it's own custom autocomplete popup rather than using the default one.
Yes, mostly the "autocomplete-richlistitem" binding. I think the gains outweigh the compat cost - especially given you usually have to completely override and re-implement certain methods just to change something. Hopefully separating out the urlbar-specific stuff will make that easier for the generic case (changing the normal autocomplete).