What you want to do is certainly possible. It's no different than writing a program which depends on the CVI runtime engine and then compiling that into a DLL and writing a new program in CVI which will then call into that DLL (which depends on the CVI runtime) and the runtime itself. (While the CVI runtime will not call into your other DLL explicitly, any registered callback functions will be called from it, so the dependency is there.) It may or may not be safe to do this depending on whether your DLLs are stateful, etc. Also, depending on your use case, the use of a callback model may simplify communication between the DLLs in question. However, in most cases you should be fine. If you have more specific questions, I can try to be more specific to your particular case.
Regards,
Alex