Protothread is really just a set of macros, based of Duff's device, to make it easier to write automata in a threaded style. It has many limitations: it does not automatically save local variables, it does not compose (except when using "hierarchical protothreads", which involves rewinding the whole stack on every cooperation point), etc. Section 5.3 of Dunkels et al.'s paper states that these are only limitations of the "current protoype", but I am not aware of any implementation of protothreads solving these issues at all (except if you consider CPC a full-fledged implementation of Protothreads, done correctly ;-).
Protothreads is a hack, a maybe clever hack, but a hack nonetheless. CPC, on the other hand, is an extension of the C language, compiled to C by proven source-to-source transformations. Of course, you then have to pay the cost of the added dependency (protothreads is only a bunch of C files to include), and potential bugs in the translator.
You can find a comparison of existing solutions in my PhD thesis, section 1.3 (page 43): http://www.pps.univ-paris-diderot.fr/~kerneis/ (first link in the "research" section).