pinentry-program does not expand ~even though other parameters do. I'd like to add this to the code.
As for the use case: it is likely that a wrapper is used that is located in one's home dir:
pinentry-program ~/.local/bin/pinentry-wrapper.sh
Unfortunately with the current implementation the script is not found unless an absolute path is used. Using an absolute path might not seem so bad, but it can hinder bootstrapping gpg on different OS (e.g. Linux, macOS - /home/xxx vs /Users/xxx) without additional processing. I never understood why expanding the tilde was supported for some parameters but not all. I dislike inconsistency and hope that you would accept a PR for it - or whatever this is called in Phabricator.
What do you think? Is this a reasonable request?