You can use the .valueOf to do the trick:
function myfunction(sum){
    var accum = function(val) {
        sum += val;
        return accum;
    };
    accum.valueOf = function() {
        return sum;
    };
    return accum(0);
};
var total = myfunction(1)(2)(3)(4);
console.log(total); // 10
JSFiddle: http://jsfiddle.net/vdkwhxrL/
How it works:
on every iteration you return a reference to the accumulator function. But when you request for the result - the .valueOf() is invoked, that returns a scalar value instead.
Note that the result is still a function. Most importantly that means it is not copied on assignment:
var copy = total
var trueCopy = +total   // explicit conversion to number
console.log(copy)       // 10 ; so far so good
console.log(typeof copy)  // function
console.log(trueCopy)   // 10
console.log(typeof trueCopy)  // number
console.log(total(5))   // 15
console.log(copy)       // 15 too!
console.log(trueCopy)   // 10