почему происходит бесконечная загрузка и утечка памяти - да миллион причин. может там что-то типа while true do { a .= ' ' }. Без кода - понять невозможно. в теории может помочь отладчик js в браузере, но это не точно.
Да фиг знает. Например для "журнала документов по клиенту" может быть и больше разных видов тех самых документов. Понятно, что это можно сделать ещё одной таблицей с полиморфными связями, но может быть не всегда рационально, например из-за блокировок при вставке/обновлении и параллельной работе большого числа пользователей.