At a first glance, the following functions respect:
a. insopts: doconfd, doenvd, doheader, doins.
b. exeopts: doexe, doinitd.
At the same time, we have a lot of functions that ignore those and set 0644/0755 unconditionally (dobin, dodoc, dolib*, etc.).
I suppose respecting it in doheader is a divergence resulting from it being added later. The others were probably either made to respect it intentionally, or because of Portage implementation.
Do we really have a use case for this? I'm thinking it would really be cleaner to only have doins/newins respect insopts, and doexe/newexe -- exeopts.
I think the question is if we care enough to fix it (and thereby introduce EAPI dependent behaviour)?
We already did something similar for domo last EAPI. Sad I didn't spot it back then.