В переменной нельзя хранить "пусто". Как только компилятор "видит", что она где то используется, то тут же выделяет память, т.е. блок памяти в котором по определению уже есть байтики ). Можно через указатели, т.к. сказать неявно.
Код:
var
D: ^TDate;
begin
ShowMessage(IntToStr(Integer(D)));
D := nil;
if D = nil then ShowMessage(IntToStr(Integer(D)));
"пусто" слишком абстрактное понятие для компа ))