I'm not crazy about creating a DLL strictly to hold onto a connection string. I could understand encapsulating all the database connecitons and such into an object, but even then I think I would want to keep the connection string seperate.
Warning, this is entirely my opinion, so don't take it as a rule or anything like that

Personally I prefer to have one central include file where the database conneciton strings are defined. I am not concerned about security because:
1) Obscurity - someone has to know what the filename/folder is in order to get to the file
2) Extension - I give it an .asp extension so that even if they know the filename, they don't get anything useful - plus you can add a short script to the top of the include file to make it look non-existant
3) If they have ftp access or something to see the contents of the file, I have much bigger problems
The advantages, OTOH, are:
1) Centralized connection string (same advtange with a DLL)
2) Easy to edit - if I have to move the site I just change the file, no recompiles or anything
3) Hooking to a test db is much easier, again I don't have to recompile to move to a test DB then again to move back
4) Maintainability - lose the source to the DLL and you will probably have to rewrite it from scratch eventually, even though the site has been working without it for years - lose the source for the ASP include file and you will have to rebuild it immediately
Plus I don't see a lot of efficiency gains if all your doing is encapsulating a connection string in the DLL.
At the same time, I am not a huge fan of encapsulating ASP pages in DLL's at all. Granted you get a performance gain, but if performance is that largea requirement to you, ASP.Net may be a better choice now. I have had to rebuild to many websites that were entirely encapsulated in DLL's. On top of that, many of the sites I have rebuilt have actually been faster in ASP. I think encapsulating a site into a DLL should be the absolute last resort, after you have learned as much as posible about optimizing your VBScript. Some of the concepts of optimization can be re-used as you write a DLL and some of the early concepts (like only querying for the data you absolutely need, etc) are re-useable as concepts in any language.
---
Back to the include script for a moment:
If you are concerned about someone somehow loading your include page, you can add a simple piece of code that will prevent them from realizing your file even exists. Basically all you need to do at the top of the page is check what URL is being requested (from Request.ServerVariables) against the name of the include file. If they match then the user is requesting the pagedirectly, so simply use Response.Status to give them a 404 and Response.End it. All done
-T