Because reading from a non-existent value still returns undef, functionally it won't matter as long as they are using the Session object API.  It only matters if people are checking the underlying data hash ( exists(session->data->{$key} ) and that's sort of an encapsulation violation anyway.

I'm don't feel terribly strongly, about it. session->delete($key) may be sufficient.