You flipped from looking for mutable to immutable and somewhat lost me.
How about we talk about the examples in the article. Stream and StreamReader? How should that be handled by making interfaces? You can extend those types but you can't apply new interfaces to the existing types.