I am developing an application and yesterday I decided to replace the default icon with an appropriate icon. Everything seemed to work, except for the fact that it didn't work in the Application Switcher. When I saw that I didn't realize at that time that the Application Switcher is provided by KM.
At some point I did realize that and decided to kill KM completely. And voila the icon was assigned to the application. For me this was a learning that costed me like 4 hours of trying and searching for possible causes and fixes. This reason was not mentioned anywhere, hence this post.
I am considering this a minor bug although I do understand why the application is caching these icons.
Yes, Keyboard Maestro caches the application icons on launch. Caching the icons takes quite a while, and not having them cached is a serious performance hit. There is actually quite a lot of code dedicated to caching the application icons.
It is extremely rare for application icons to change, and the system provides no support for indicating when an application icon might have changed, so Keyboard Maestro makes no attempt to deal with changes to application icons.