Not just resources but 'anything'... same thing as an exe but needs to be 'hosted'. and flow between exe and dll being slow? never heard of that one! it's basically seamless
Anyway.. same reason why you start putting stuff into classes is the reason why you start putting stuff in DLLs.. It just makes sense from an architecture perspective. If you for instance take your encryptor program and want to use it with different front-ends (or even allow other to use it) putting it in dll would be the way to go. or another simple scenario is a plugin for something like photoshop/3dsmax etc. These are not meant to run on their own, but provide new functionality.
for any larger project i RARELY have just 1 exe, but split things up in logical chunks and stick those in DLLs