I very rarely use empty() but I use is_null() a bit and isset() a lot. IMO, empty() is vestigial. PHP doesn't actually have a concept of "empty".
I much prefer Icon's approach: not-set variables are semantically identical to those containing &null which can be passed like any other value. Icon also has prefix operators / and \\ which mean check for null and check for not-null. Much cleaner than PHP's isset().
Wade.