I would like a way to associate patches with packages so that I don't have to untar, apply, digest, etc. every time. For example, there could be a /etc/portage/patches directory with the same layout as /usr/portage .
This can already be done via /etc/portage/bashrc or the per-package bashrc that is implemented in $PORTDIR/profiles/base/profile.bashrc. You'd want to trigger the patch just after the unpack phase. For example, it can be accomplished via the pre_src_compile user phase hook or by a conditional such as [ "${EBUILD_PHASE}" = compile ] && epatch mypatch.patch.
I don't think we want to go out of our way to encourage this type of thing due to the possibility of users filing bugs about packages and forgetting about the patches that they've applied locally. This is really what PORTDIR_OVERLAY is for. If you want to exploit bashrc for patches, then that's fine. Just remember what you've done before you file a bug.
Created attachment 91979 [details, diff] bashrc.autopatch Example of how I accomplish this same thing. I use PATCH_OVERLAY=$PORTDIR_OVERLAY/patches/ Zac is right however this should probably not become any sort of default behavior of portage as it could cause problems that nobody else could trackdown when end users start adding custom patches.