И label, и panel наследуют от класса Windows.Forms.Control, соответственно, являются "дочерними" окнами (window) по отношению к основному.
Чтобы ответить на ваш вопрос, надо понимать, что "под капотом" представляет собой событие.
При регистрации нового окна в системе, выделяется память под программный код (оконная процедура
WNDPROC), обрабатывающий приходящие сообщения (Windows Message). Для определённых классов (форма) в него уже сгенерированы обработчики, отвечающие на базовые сообщения (перемещение окна, сворачивание, изменение размера, перерисовка и пр). Оконная процедура есть у всех окон.
Когда вы пишете обработчик события, на самом деле вы передаёте адрес этого обработчика оконной процедуре окна, говоря, что если пришло какое-либо определённое сообщение (Window Message), необходимо выполнить программный код, который находится по такому-то адресу.
Соответственно, если вы не написали обработчик события, то никакой доп. памяти системой не выделяется (не в курсе, правда, оптимизирует ли компилятор "пустые" обрабочики событий).
2. "Вдруг" в компилируемом языке невозможно без чёрной магии и метапрограммирования. Весь ваш программный код компилируется и под него выделяется память при запуске приложения. А вот передать новый параметр оконной процедуре в процессе исполнения можно, подписываясь на то или иное сообщение, или отписываясь от него. Все зависимости от этого, под весь скомпилированный код операционной системой выделяется память.