Adblock only works by recognizing the domain hosting the image/scripts or common path names.
Toss that banner add on the cloud, or have it hosted locally by the site owners(in a non-"banners" or "ads" subdirectory) and for the most part you've got it beat. Advertisers haven't adapted because there's not a big enough incentive to. But if push ever comes to shove, they'll win.
They will never win. Look at it this way. You've essentially said that advertising gets dirtier the less people respond, and if everyone used Adblock, advertising would get so dirty we couldn't win.
Yet, spam is probably the dirtiest advertising there is. There is likely no trick the spammers have not tried. Send from any host, embed stuff in reasonble-looking text, etc. Yet spam detection is very, very good, to the extent that spam is on the decline.
Advertisers will never win, because you can write better software that detects ads. Adblock's simple host and XPATH detection is all that's there because it's all that's necessary right now. It would however probably not be that hard to write image detection software that can process images and assign a AD-PROBABILITY value to them. Use the cloud against the advertisers ... just set up software that learns by user submission on a cluster and click on an ad to submit it. Consult the "cloud" for any new images.
But, until most people care about ads the way they care about spam, it's not going to be necessary. Unfortunately we're so culturally inundated with advertisement that it's just not a thing. Though while this may look like a win for advertisers, it does make ad removal trivial for those of us who care.