nofollow takes the link out of the link map. IF Google is devaluing a page based on an affiliate link being present, then nofollow does not hide the fact that an affiliate link is being used.
For what it's worth (as someone managing a lot of affiliate sites all using various methods) I've found affiliate links fall in to the "is this spam?" thought process of the algorithm -- e.g. if Dmoz started showing affiliate ads it's rankings would be unchanged. If a site launched last week with 10 inbound links from dodgy-looking links pages suddenly has affiliate ads on all it's pages ... it will sink like a stone.
Think "flags" not "penalties".