⟩ Why use references rather than pointers in the public API, particularly for arguments which are modified?
The C++ provides the most precise statement of the priciples:
No pointers in the public API, except when returning a pointer which might be null. The above reference also describes the problem of wrong attitudes brought over from C.