I can't code this of course, but maybe the idea is worth looking into:
Whenever you start digging in an area, occasionally, you find yourself digging at a node briefly and then moving on to another node without breaking the last one (perhaps because you accidentally moved the mouse, or who knows why). Then, you find yourself turning back to that node you missed, only to have to dig it again from the beginning. This can be tiresome in practice.
It would be good for nodes to have semi-persistent damage, perhaps on a scale of 0-10, where 0 would be completely intact and 10 would be the most damaged state before the node is destroyed.
Further, it would also be a good idea for some damaged materials to gradually "heal" over time. In order from slowest to fastest I would say gravel, trees, leaves, all other plantlife, dirt, and sand/desert sand. Dirt or sand/desert sand would "heal" very rapidly if there's water next to it (but not so quickly that it interferes with digging in the first place, of course).
This should work for mods also, where the mod author could specify both wet and dry healing times. Time values might be in the range 1-30, which would represent N^2 seconds of real time (so a value of 1 is 1 second, 2 is 4 seconds, while 30 would be about 15 hours).
Times not specified for a given node should default to infinite, and should only apply one way or another to solid nodes (e.g. water and lava and similar should take no damage).
I could seen an argument where crack.png should be updated to show 10 or more frames instead of just 5, to go along with the aforementioned damage level, but the existing image would still look fine to most people. Maybe divide the height of crack.png by its width at load time, and treat the result as, basically, X number of frames to use. This would also allow for more flexible crack animations in the future as a side effect (which I understand is desirable anyway).