As a client developer, while implementing a XEP, I often encounter problems with missing or incomplete server support. I guess this is inevitable in a client-server environment with distributed development.
PEP support was added to Coccinella while Magnus wrote the patch to ejabberd, and finally applied it to jabber.se. Since Ad-Hoc Commands are so much older I expected better compliance. A few cases: Although not strictly an Ad-Hoc issue, I found that an IRC service is still using xmlns='jabber:x:conference'! This protocol I removed several years ago. Also noted that when I cancel an Ad-Hoc session prematurely (sect. 2.4.3) I should get a status='canceled' back, but with Wildfire 3.2.2 I get an error type='modify' instead. Perhaps I should update both my ejabberd and Wildfire (Openfire) installations.
Another trouble is the old Data Forms which can be a pain to look nice. The main problem is that you don't know what to expect. While some services return labels which are short, others return very long ones better suited for tooltip windows. Normally they are used with fields elements, typically a label and an entry widget, but there is also a special form with Multiple Items which behaves completely different.