if you're working on bacteria, I think you can anyway forget about DAVID and Biomart. You may have a look at Cytoscape and its plugins. BINGO for instance is a nice one to do GO enrichment. I use it most of the time with Uniprot protein IDs, but you should be anyway able (encouraged) to load yourself the annotation file.
links: Cytoscape: http://cytoscape.org/, plugins for enrichment analyses: http://apps.cytoscape.org/apps/with_tag/enrichmentanalysis
DAVID accept refseq and serval other kind of protein IDs. You can convert your protein IDs into the ids DAVID accepted. And you can also convert your protein IDs to their corresponding genes IDs.
All these above depends on whether your IDs (proteins/ genes) are well annotated. If not, you might like to first annotate your protein and find their ortholog genes whose ID are available in DAVID.
If you don't want to convert or annotate them, you can also try to leave them DAVID and let DAVID to autodetect you ids(in most cases, it doesn't work). Good luck with it.
Could please share what kind protein IDs you have ? Then, other people can better help you.
For E. coli I would use EcoCyc from SRI. It is probably one of the most comprehensive and curated resources when it comes to E. coli. It has a module for doing enrichment analysis through its smart tables, see here http://ecocyc.org/PToolsWebsiteHowto.shtml#node_toc_node_sec_7.5.1
It might be more pathway related enrichment analysis than GO based, but in any case you might find the result useful, or complementary to the GO-based analysis.