Решение нашлось путем выноса безымянной функции в глобальную область видимости и придания ей имени.
Это вообще Баг или какой-то смысл в этом есть?
function remove_erorku(elem){
setTimeout(function(){
elem.closest('.punct_block').find('.reg_add_input_pole').on('click', reg_add_input);
elem.slideUp_remove();
},600,elem=$(this));
}
function reg_add_input(){
//elem=$(this);
$(this).off('click', reg_add_input);
punct_block=$(this).closest('.punct_block');
el_col=punct_block.find('input').length;
max_copy=Number(punct_block.attr('max_copy'));
if (max_copy<el_col+1) {
errorka=$("<div>Максимум "+(max_copy)+" записи(ей).</div>").hide();
errorka.prependTo(punct_block.find('.reg_error_block')).slideDown(500,remove_erorku);
}
else
{
clone=punct_block.find('input:first').clone().val("").addClass('cloned').css('border-color','').css('color','').css("display","none").css("margin-top","10px").insertAfter(punct_block.find('input:last')).slideDown(300, function(){
$(this).closest('.punct_block').find('.reg_add_input_pole').on('click', reg_add_input);
});
}
}