( 2 )
Я занимался портированием программ на Фортране с одной платформы на другую (с System/370 на микропроцессорные системы) и всем - что связано с портированием приложений такого рода более 10 лет...
Первое с чего вообще начинали System/370 <--> PDP/11 (перенос программ распознавания образов - обработка аэрофотоснимков и снимков со спутников).
На "клоне" PDP-11 работала RT-11SJ (модификация NTS-монитор) - с векторными процессорами и интерфейсом для программ на языке Fortran (стандарт Fortran-77 - там даже BYTE кроме LOGICAL*1 было в качестве типа данных).
( 3 )
правил там не то чтобы "вообще никаких нет" - а просто "сплошные исключения из правил"
(4) Я имел ввиду общепринятые стандартные (насколько это возможно) реализации языка FORTRAN (в стандартах не фикскируется порядок вычисления аргументов функций - а поскольку в процесс "вычисления функций" могут возникать изменения глобальной области данных - результаты могли получаться довольно "прикольными":
Мне больше нравился примерно такой "глюк":
COS(A) = COS(A) + 1
И результатом выполнения оператора C=COS(B) было что-то "очень странное".

Может быть за Fortran цепляются еще из-за "встроенной реализации комплексной арифметики" (комплексные числа) - но это уже просто глупость - из-за того что есть много красивых библиотек для C и С++. Есть очень интересный стандарт MISRA C - для приложений для embedded systems....
Популярность "фортрана для параллельных вычислений" - вероятно связана с особенностью "соглашений о связях" в ассемблерных программах для System/360 : Там стека не было вообще - каждая подпрограмма обеспечивала свою собственную область сохранения регистрового файла и адреса возврата. Эту особенность "унаследовали" большинство генераторов кода в компиляторах с языка Фортран.
Эту деталь также использовали в реализациях "сопрограмм" - после вызова подпрограммы можно было по RETURN позвращаться каждый раз в разную точку возврата. За счет этого моделировалась "квазипараллельная работа" на однопроцессорных системах.