Possibly mixing prototype and module pattern
The commenters pretty much said it all:


publicFunc3 can't see myPrivateFunction &lt;- not good
I would declare function() { /* uses myPrivateFunction() */ } as a private function and then just return a pointer to it:

MyObject.prototype = (function() {
    //private helper functions
    //scoping is a pain, but doable
    function myPrivateFunction() {}
    function myPrivateFunction2() {/* uses myPrivateFunction() */ }
    function myPrivateFunction3() {/* uses myPrivateFunction() */ }

    return {
        publicFunc1: myPrivateFunction2
      , publicFunc2: myPrivateFunction3
    };
})();

I know there is a "comma first" movement out there, but it looks silly to me


Other than that, this code does not look monstrous to me, if it works for you, then why not.