Yes, disambiguation issues are one of the most commonly reported formatting issues on the Zotero forums. I don’t think citeproc-js is doing anything wrong, since Zotero 2.0 handles things the same way, but I wonder whether we might be able to strike some kind of compromise between strict accuracy of disambiguation and usability.
I don’t see why we shouldn’t consider two creators that differ only in punctuation to be the same individual (e.g., Carles’s case of “Givenb P. FamilyB” and “Givenb P FamilyB”). We could even perform this normalization on the Zotero side before passing to citeproc-js.
More contentiously, maybe if we have two creators “John J. Smith” and “J. J. Smith”, we should assume them to be identical, whereas “Jim J. Smith” and “John J. Smith” would need disambiguation? This could be incorrect if you had a creator who is ordinarily cited by initials alone along with another creator with the same initials (e.g., C. S. Lewis and Christian Solomon Lewis), but the number of problematic cases seems minimal compared to the number of cases where users would otherwise need to modify their authors. Perhaps it could be set by a preference? If this makes sense, it would need to happen on the citeproc-js side.
This is more of an implementation question than a CSL question, but as it’s not specific to citeproc-js, I’m copying xbiblio for any opinions there.