I don't really see what this division gains. Sure, you can allocate an extra class around what is basically a single procedure, but what is the point?
It's called software abstraction and benefits would be that you get more robust, better maintainable, expandable and testable software (the software in this case would be the LCL itself).
You're right of course that 'other operations' might need other/more stream features. But that's a different 'family of problems' and may result in it's own abstraction. The key point here is that the base64 encoding/decoding now is tightly coupled with streams. Wheheas the
encoding itself has nothing to do with streams.
Just my 2 cents
