Что касается операций с векторами, кватернионами, матрицами и прочими сущностями, которые определены на n-мерной поверхности с топологией сферы, то появление нулевой или очень маленькой нормы является признаком плохого выбора алгоритма. Это всегда приводит к катастрофической потере точности и может считаться логической ошибкой программирования. Никаких бесконечностей и прочих сингулярностей в вычислениях быть не должно. Поэтому делитель, если это что-то вроде нормы, следует всегда проверять на вшивость и если он слишком мал, просто делать аборт, после чего сесть и подумать, как модифицировать алгоритм, чтобы тот был вычислительно устойчив.
Желательно четко понимать, в каких случаях алгоритм теряет устойчивость и точность представления результата, проверять на такие условия ( пример -- алгоритм Шепперда вычисления кватерниона, эквивалентного матрице вращения) и переключаться на другой алгоритм, более устойчивый в данной области. А делитель на малость нужно проверять всегда. Обычно предел малости выбирают исходя из задачи. В общем случае при использовании 64-разрядных чисел с плав. запятой в качестве нуля можно принять полуширину интервала в 1E-14. Но лучше алгоритм протестировать в областях, где он демонстрирует плохую обусловленность, поскольку не всегда это можно оценить теоретически. Как вариант, генерируем много равномерно распределенных в поганой области векторов и определяем минимальную ширину допустимой зоны малости, увеличиваем ее на порядок и используем для проверки деления.