I'm trying to overlay a picture with a semiopaque rectangle, then cut out some shapes (rectangles and circles) so the image is clear in those, then point to the cutouts with something like tikz \pin command.
My problem is that the only examples i could find for cutouts use \fill and then simply pile on the cutout shapes. Is there a way to create those cutouts directly from nodes so i can later reference those nodes? Currently i am simply defining another node with the same coordinates later, to refer to that, but it would be a lot cleaner if it was possible to use the nodes for cutting directly.
MWE (without nodes, from an example in the answer by Alex Recuenco in this Q: How to create a rectangle with a transparent hole):
\documentclass{article}
\usepackage{tikz}
\begin{document}
\section{Non Zero Rule}
\begin{tikzpicture}
\draw[black, fill = black, fill opacity = 0.5, semithick]
(0,0) rectangle (5,5) (2.5,2.5) circle (0.5);
\end{tikzpicture}
\section{Even Odd Rule}
\begin{tikzpicture}
% \node (image) {\includegraphics{somepic_with_cool_features}}
\draw[black, fill = black, fill opacity = 0.5, semithick, even odd rule]
(0,0) rectangle (5,5) (2.5,2.5) circle (0.5);
\end{tikzpicture}
\end{document}
To clarify: My dream would be to have something like
% \node (image) {\includegraphics{somepic_with_cool_features}}
\draw[black, fill = black, fill opacity = 0.5, semithick, even odd rule]
(0,0) rectangle (5,5) {%
\node[pin={[red]60:Cool feature one!}] (circ1) (2.5,2.5) circle (0.5);
\node[pin={[red]60:Wow another one!}] (circ2) (4,4) circle (0.5);
\node[pin={[red]60:A whole bunch!}] (rect1) (5,6) rectangle (7,9);%
}

- what's with the ultra-precision coordinates? (in an answer by Symbol 1 to the eraser-related Q https://tex.stackexchange.com/questions/12010/how-can-i-invert-a-clip-selection-within-tikz/12033#12033, something like reset cmrectangle(\maxdimen,\maxdimen) is used - is that related?
- You seem to be doing "draw node, then draw eraser-node at same coords" - that is not much less complicated than my " draw eo-cutout, then draw fakenode at same coords" - i was looking for a way to do "draw rect, now cutout node"
– bukwyrm Apr 22 '20 at 06:36fill=white, say, and do not need any of this. However, when you have a nontrivial background of which you wish to "protect" some regions, and if these regions should have node anchors and a node boundary, these tools may be worthwhile. – Apr 22 '20 at 06:52