Depends how you're using them. Apparently Lucid finds this "diagonal" approach to streams - which is not the normal way of streams in most programming languages - to be useful, in which case the monad model is a good fit.
Streams as I've seen them used in other languages are possibly-terminating, d* is a stream of the single value d and D -> D* is flattening the stream of streams.