Reconcile C API with docs

This fixes #5286 and results from discussion on that issue.
technically yes, practically its only an issue if a windows user has a elementsize larger 2 GB and we have broken our abi to actually allow that