DLLs have a little extra security to help prevent some of the more obvious tinkering, and I suppose its easier to write instructions to point to a single provided DLL rather than a folder with potentially a large number of icon files. In a more enclosed environment the BMP solution tends to be a little easier, as replacing/modifying a single BMP is easier than modifying a DLL.