I avoid chemical cleaning wherever possible. Planning it is a hassle, and execution has potential to turn into a real mess. The condensate and/or effluent needs to be carefully controlled and likely captured to avoid upset to the waste water plant or sour water handling systems.
That being said, chemical cleaning does have its place. It has been my experience that heavy oil circuits like reduced crude, vacuum units, cokers, FCC, etc. can benefit from chemical cleaning; just don't expect them to be totally spotless even after a good chemical cleaning. Also, anywhere you have a packed column that you'll be working with chemical cleaning can be beneficial. If experience or type of unit suggests high likelihood of pyrophorics being present some neutralization may be in order.
Something as simple as injecting a little potassium permanganate can go a long way towards oxidizing pyrophoric material. Bleach solutions used to be used sometimes, but they've fallen by the wayside in favor of permanganate due to a few safety reasons. Bleach in the presence of ammonia can produce chloramine which is toxic and can be explosive under the right conditions. Also, when bleach and alkanolamines get together they make a nitrogen mustard that is not only an inhalation hazard, but also a a blistering agent. The chlorides in bleach can go a long way towards cracking austenitic stainless steels too. This is why its really important to know and understand what's in your pipes and how it might interact with anything different you add to it during a shut down.
In terms of commercial solutions, PSC's LifeGuard and United's Zyme-Flow come to mind for chemical cleaning purposes, and these companies could help assess potential hazards too.