It has global state. In erlang processes are long lived and you bring functions to them to do stuff. Suddenly you will do something and a piece of state that you weren't expecting will be in your process dictionary...
Some erlang processes run for literally years - and exist over multiple releases of the software. Reasoning about how something did or did not get into the process dictionary is for the birds.
I think the consensus in 2009 was you should see how far you can get with ETS (and this will motivate me to read the R14 release notes), PD's are kind of like lisp reader macro's, very sharp and very slippery. There are many threads in the google group if you want more argumentage.