Уберите все скрипты со страницы и посмотрите — это нативное поведение браузера.
Придётся добавлять перенос вручную. Можно вот так по-рабоче-крестьянски влупить строчку:
if (code == 13) {
	if (event.ctrlKey) {
		elem.val(elem.val() + '\r\n');
	} else {
		event.preventDefault();
		scope.$apply(attrs.enterSubmit);
	}
}
Update: Начинка всё равно на нативном 
Javascript, так что без разницы, в каком языке.
target — это ссылка на textarea, 
e — на событие.
if ((e.keyCode || e.which) == 13) {
	if (e.ctrlKey) {
		if (target.selectionStart) {
			var start = target.selectionStart;
			target.value = target.value.slice(0, start) + '\r\n' + target.value.slice(target.selectionEnd);
			target.selectionStart = target.selectionEnd = start + 1;
		} else {
			var range = document.selection.createRange();
			range.text = '\r\n';
			range.collapse(false);
			range.select();
		}
	} else {
		e.preventDefault();
		// тут делаем ку
	}
}