Icon imagery isn't cached. Even default icons read the env:sys/def_xxx.info files.
I've often thought about a patch for the icon.library for this purpose that would store the actual image data into some sort of LRU cache that was user sizeable.
You would always have to open the icon file to access the tooltypes and so forth, but cacheing the imagery would speed it up considerably, especially if you store it in a method best suited for the graphics hardware.
You just need to make sure your cacheing mechanism can catch any changes made to the icon.