This is both easier and gets a better result. Iterable should a spliterator() method, so you should just need that to get your espliterator. In the most serious case, it's the very code (the default implementation uses spliteratorUnknownSize), but in the more general case, where your Iterable is already a collection, you'll get a more reliable spliterator, and hence better stream doing (maybe even good parallelism). It's also less code:
As you can see, preparing a stream from an Iterable is not very disturbing.