Violación estricta usando esta palabra clave y revelando el patrón del módulo

Tener problemas para que lo siguiente pase jslint / jshint

/*jshint strict: true */
var myModule = (function() {
    "use strict";

    var privVar = true,
        pubVar = false;

    function privFn() {
        return this.test; // -> Strict violation.
    }

    function pubFn() {
        this.test = 'public'; // -> Strict violation.
        privFn.call(this); // -> Strict violation.
    }

    return {
        pubVar: pubVar,
        pubFn: pubFn
    };

}());

myModule.pubFn();

Entiendo que está siendo causado por el uso dethis en una declaración de función, pero leí algo que Crockford escribió y dijo que la violación está destinada a prevenir la contaminación de la variable global, pero la única variable global aquí es la que estoy definiendo explícitamente ...myModule. Todo lo demás se mantiene en el ámbito de la función inmediata, y debería poder usarthis para referirse al módulo.

¿Alguna idea de cómo puedo hacer que este patrón pase?

Actualizar si uso una expresión de función en lugar de una declaración, esto parece funcionar, es decir,

var pubFn = function () { ...

No soy fanático de este formato, prefiero tener el nombre de la función y los parámetros nombrados más cerca y la declaración se ve / se siente más limpia. Sinceramente, no veo por qué esto arroja la violación: no hay ninguna razón para ello en este patrón.

Respuestas a la pregunta(3)

Su respuesta a la pregunta