Currently, the only way I know of around this is to take the graphics from the mod(s) and overwrite Factorio's default images. That's a horrible way to do it. I'm not sure how this change would fit with the data.raw schema... Perhaps it would better if Factorio, like many other games, automatically updates default images to mods' images* when they have an identical name and folder structure? I mean, if the mod has the file /graphics/icons/basic-mining-drill.png but no .lua files, it would be safe to assume the mod just wants to update the graphic (and having no code prevents changing game state!).
The only real argument I can think of against allowing such easy graphics swaps is that someone might replace enemy graphics with super-visible red circles and run an aimbot or something... But you already auto-aim in Factorio.

*It should probably do a few other file types too, for sounds and whatnot. Perhaps any audio files placed in sound/music likewise get loaded and added to the playlist with no code required.