provigator, "старое изображение" это изображение всего холста, а не то которое ты отрисовал последним.
function mask() {
ctx.drawImage(pic2, 0, 0);
ctx.globalCompositeOperation = 'destination-out';
ctx.drawImage(pic3, 75, 0);
ctx.globalCompositeOperation = 'destination-over';
ctx.drawImage(pic1, 0, 0);
ctx.globalCompositeOperation = 'source-over';
}