How should paths in /etc/paths.d get added to $PATH?
/usr/libexec/path_helper is used to build PATH from the default in /etc/paths and the entries in /etc/paths.d (see man path_helper for details). By default this is called in /etc/profile which is executed for each sh/bash/zsh style login shell.
On my system /etc/profile looks like this
# System-wide .profile for sh(1) and friends

if [ -x /usr/libexec/path_helper ]; then
    eval `/usr/libexec/path_helper -s`
fi

if [ &quot;${BASH-no}&quot; != &quot;no&quot; ]; then
    [ -r /etc/bashrc ] &amp;&amp; . /etc/bashrc
fi