what about making backwards compatible change in the future API releases? Given that responsible API user will need to check the pointer for NULL anyway (at least in the case above), maybe it would be reasonable to embed this check in the API and push synthetic empty string in case len is zero and the pointer is NULL. Either it will be done inside the API or each and every developer will be forced to write additional wrappers on top of pushlstring (or write unreliable code)...
This change does not seem to break anything. Just adding this point to the documentation will force people to, well, read documentation in some buggy situations like this.