If you aiming for maximum security then the deeper is better. Kind of like love. If you could put everything in assembly or Machine code then no one will have a clue on what to do. But because of C++ being a compiled language making an executable binary is a lot safer than distributing your source. And I would think executables are safer than DSOs