I thought the z was there in zpp because we called it internally passing it a zval like most other places.
Doesn't look like it though, did a very quick git grep and can't seem to see any.

But now we've changed the "recommended" proto from s|bll to s|a, which I totally agree with, but this needs to be documented clearly.

One thing to note is the max option used to be skipped if capped=0.
Any need to notify the user if he passes in 'max' as part of the array, but not 'capped' ?