I might just be totally confused (again :P), but I’m fairly sure that another possible reason for not being able to repair is if the infected file is included in something legit that you added to your system after the most recent VRDB update – i.e., there’s no “clean” data to repair it with.

I think in that case you’re specifically told it’s missing from the database – but that would obviously also be true for worms. So the suggestion to have avast handle worms differently from “ordinary” viruses is an excellent one.