Closing as having both is intentional. Generic code may need `contains` to guarantee complexity. The alternative:
> The Achilles's heel of checking for SortedRange is that not only sorted ranges have fast contains - a variety of hashed containers come to mind. Any range with fast searching should implement contains.
Discussion starts here:
https://github.com/dlang/phobos/pull/5651#issuecomment-317558570