As Jared has already pointed out, EnumSet has NO public member functions in addition to Set. EnumSet implements Cloneable, which however you don't need for an immutable Set because immutable values can be freely shared and don't need to be copied.
The only advantage of typing it as EnumSet that I can see is that you'd be able to pass it to EnumSet.complementOf() - but see below for how to construct the complement of a Sets.immutableEnumSet().
EnumSet.complement() is not public, so that doesn't really count, and you should be able to construct a complement using
Sets.immutableEnumSet(Sets.complementOf(enumSet))
Also, the iteration order in Sets.immutableEnumSet() is defined.
If you were after a SortedSet, EnumSet doesn't implement that interface either.
As for range: I'm guessing you mean something that returns the intersection between EnumSet.range() and some other EnumSet. Such a function might be useful, but it doesn't exist on EnumSet either. You'll have to do:
Sets.immutableEnumSet(Sets.intersection(enumSet, EnumSet.range(a,b)));
which will require O(size of result set) time.
Most implementations of Set<Foo> actually guarantee order - LinkedHashSet does, TreeSet does, EnumSet does, and the Set returned from Sets.immutableEnumSet() does as well.
Cheers,
Tobias