I cleaned mine years ago with parts cleaner...later learned that's probably too aggressive. But I haven't had any issues for maybe 3 years. It's beginning to show signs of early stages of sticking, so I'll have it on my list to do again.
I had heard later that it should be lubricated too, though most here don't seem to do that. I have heard, though, that wd40 sort of sucks for most applications, and I tend to believe it. If you're going to lube it, find something just for that, not something all purpose like wd40 (which probably wouldn't last that long).
But, that said, I haven't heard of a 'icv dirty' code before. Check your connections on that one round connector that gives some here issues. Clean up contacts on things with electric cleaner...and read up on speed sensors...which more often seem to cause the sort of symptoms you describe.
I'm so depressed. No one wants to come see me. :(
Mangofy your E46!