I often nest a tikzpicture within a tikzpicture element, such as a node, to treat subparts as unity and then place it as such relative to other parts of the picture. However, I'm wondering whether it is considered good or bad practice to nest tikzpictures. I'm also interested of knowing the disadvantages, if any, of nesting tikzpictures.
For example, in my latest figure, I've used nesting to achieve the following:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning}
\colorlet{shade1}{black! 10}
\colorlet{shade2}{black! 20}
\colorlet{shade3}{black! 35}
\begin{document}
\begin{tikzpicture}[%
function/.style={%
draw,
circle,
minimum size=0pt,
inner sep=2pt,
outer sep=0pt,
node distance=0pt,
},
function argument/.style={%
function,
fill=shade3,
},
gpgpu kernel/.style={%
function,
fill=shade2,
},
invoker/.style={%
function,
fill=shade1,
},
label/.style={%
rectangle,
inner sep=0pt,
outer sep=0pt,
node distance=6pt,
},
]
% Functions
\node [invoker, inner sep=-2pt] {%
\begin{tikzpicture}
\node [gpgpu kernel] (gpgpu_kernel) {%
\begin{tikzpicture}
\node [function argument] (func_arg) {%
\begin{tabular}{@{}c@{}}
C \\
function
\end{tabular}
};
\node [label, below=of func_arg] {GPGPU kernel};
\end{tikzpicture}
};
\node [label, below=of gpgpu_kernel] {Invoker};
\end{tikzpicture}
};
\end{tikzpicture}
\end{document}
