If you must always return the same unspecified object, then it's been specified. If you really want #unspecified, then you should also permit (not (eq? #unspecified #unspecified)). As for unit domains, isn't () one?