Wenn ich Dich richtig verstehe, willst Du, dass `\label` gleichzeitig ein `\keytip` mit identischem Argument ausführt. Das geht am einfachsten, wenn man `\label` lokal zur jeweiligen Umgebung entsprechend umdefiniert:
\documentclass{scrbook}
\usepackage[ngerman]{babel}
\usepackage{xcolor}
\usepackage{graphicx}
\usepackage{tcolorbox}
\tcbset{colframe=gray, colback=yellow!20,}
\usepackage{amsmath, amssymb, amsfonts}
\newtheorem{defi}{Definition}[chapter]
\usepackage{pgffor} % Schleifen
\usepackage{xpatch,letltxmacro}
\foreach \Umgebung in {figure, table}{%%
\BeforeBeginEnvironment{\Umgebung}{\newpage}% Warum hier kein \clearpage???
\AfterEndEnvironment{\Umgebung}{\clearpage}
}
% defi und equation kann man ganz einfach erweitern
\foreach \Umgebung in {defi,enumerate}{%
\BeforeBeginEnvironment{\Umgebung}{\newpage\begin{tcolorbox}\LetLtxMacro\label\keytiplabel}%
\AfterEndEnvironment{\Umgebung}{\end{tcolorbox}\clearpage}%
}
\makeatletter
% amsmath-Umgebungen sind erneut etwas sehr speziell. U. a. setzen sie
% Labels nicht mit dem normalen \label, sondern mit einem lokal zu
% \label@in@display umdefinierten \label und das teilweise auch erst
% während \end{…}
\foreach \Umgebung in {equation}{%
\BeforeBeginEnvironment{\Umgebung}{\newpage\begin{tcolorbox}
\LetLtxMacro\saved@label@in@display\label@in@display
\renewcommand*{\label@in@display}[1]{%
\keytip{##1}\saved@label@in@display{##1}%
}%
}%
\AfterEndEnvironment{\Umgebung}{\end{tcolorbox}\clearpage}%
}
% Für die Gleitumgebungen geht es besser durch Erweiterung von \@float
% und \end@float
\xapptocmd{\@float}{\LetLtxMacro\label\keytiplabel\begin{tcolorbox}}{}{}
\xpretocmd{\end@float}{\end{tcolorbox}}{}{}
% Jetzt noch \keytiplabel, mit dem sowohl ein \keytip als auch ein \label
% erzeugt wird.
\newcommand*\saved@label{}
\LetLtxMacro\saved@label\label
\newcommand*{\keytiplabel}[1]{\keytip{#1}\saved@label{#1}}
\makeatother
\usepackage[createtips]{fancytooltips}
\begin{document}
\chapter{Kapitel mit Bild}
Das Bild kommt auf neue/eigene Seite
\begin{figure}\label{fig:Bild}
\centering
\includegraphics[scale=0.5]{example-image-a}
\caption{Bildunterschrift}
\end{figure}
Bei solchen Umgebungen tut der tcolorbox-Kram natürlich auch \dots
\begin{defi}[Eine Definition]\label{def:Definition}
$x := z$
\end{defi}
Und auch bei Gleichungen funktioniert das:
\begin{equation}
x=y\label{eq:a}
\end{equation}
Und ebenso bei Listen:
\begin{enumerate}
\item Nummer ein.\label{en:a}
\item Nummer zwei.\label{en:b}
\item Nummer drei.\label{en:c}
\end{enumerate}
\end{document}
Erzeugt eine `.tips`-Datei mit dem Inhalt:
\tooltipname{fig:Bild}{2}
\tooltipname{def:Definition}{4}
\tooltipname{eq:a}{6}
\tooltipname{en:a}{8}
\tooltipname{en:b}{8}
\tooltipname{en:c}{8}
Und natürlich funktioniert dabei auch das Einrahmen von `defi`, `enumerate` und `equation`.
Insgesamt sei aber an Henris Kommentare zur Frage erinnert aus dem ich die Empfehlung herauslese, entweder in den Verarbeitungsprozess entsprechende Ersetzungen einzufügen oder aber die Standardumgebungen in eigene Umgebungen mit passender Anwenderschnittstelle zu kapseln. Beides ermöglicht eine größere Kontrolle ohne in jedem Fall tief in die vorhandene Definition der Umgebungen einsteigen zu müssen. Bei Bedarf kann man dabei auch für unterschiedliche Verarbeitungsstufen mit unterschiedlichen Ersetzungen oder Definitionen arbeiten.
Übrigens verwendet man im Deutschen keinen Halbgeviertstrich als Bindestrich. Ich habe das bei `tcolorbox-Kram` entsprechend geändert. Der Halbgeviertstrich ist im Deutschen u. a. ein Gedankenstrich.