When your first control is cached, its rendered out and its output is stored in the cache. On every request to the page containing your control that can satisfy it from cache, the output will just simply be inserted - your first control will never be instantiated or run in that case, so the second one wont be either.
Hope this helps,
IIS Core Server / ASP.NET Runtime
This posting is provided "AS IS" with no warranties, and confers no rights.
Read more about IIS7 on my blog at www.mvolo.com