I've not worked with ruby, but Perl has a similar construct which has the same kind of baggage around it.
There is no structural difference between these 3 constructs:
if not condition
However, semantically, I think the reason that people recommend it is that
unless condition is really just syntactic sugar for
if not condition. The difference is that not every language has
unless so the latter is more instantly readable to a new programmer. When introducing
unless it is usually in the context of the above definition.
unless then else just confuses things further, because while
unless is a helpful shortcut,
unless else adds confusion by having an unfamiliar construct used in an unneccessary way.
unless then else can trivially be rewritten as
if then else, so I would suggest that there is no case where
unless then else improves the readability or computability of the code.