Читал на днях интервью от создателей Хаскелла. Один из авторов сказал, что ни имели в свое время проект по применению программирования (в частности функционального) в других сферах человеческой жизни. Например, они пытались рассматривать школьный курс химии как некий набор функций. Из интервью не понятно чем все кончилось и занимаются ли они этим сейчас. Но в тоже время меня натолкнуло это на некоторую мысль.
Итак, давайте рассмотрим бухучет. У нас имеется некоторое "железо", это например, базовые понятия бухучета (прочитать можно про Луку Пачоли и все такое :) ), типа плана счетов б/у. План счетов состоит из самих счетов, на которых располагается информация о движении каких-то сведений (как правило денег и куча дополнительной информации, поясняющей это движение). Можно рассматривать эти счета б/у как регистры некоторого процессора бухгалтерского учета. Такой вот процессор, который имеет много регистров (согласно законодательству), но который их использует не все (а только те, которые нужны фирме). Таким образом, законодательство о б/у можно рассматривать как спецификацию на такие процессоры. А конкретный план счетов организации как реализация конкретного процессора в соответствии со спецификацией (то есть некоторый элемент множества всех возможных таких процессоров). Тогда любая запись бух учета, изменяющая состояние плана счетов (то есть какие деньги на каком счете и как переходят) можно считать одной неделимой инструкцией программы. Как правило, такие изменения отражаются с помощью бухгалтерских документов (например, выдача денег в подотчет с помощью расходного ордера - это уменьшение денег на одном счете и увеличение на другом). То есть бухгалтерский документ это один оператор программы. А журнал документов будет являться частью программы (при этом некоторые документы не влияют друг на друга и могут исполняться параллельно в отдельных друг от друга потоках и так на самом деле и происходит - сидят разные тетки и проводят разные документы независимо друг от друга). Все журналы документов будут являться некоторой программой. Если правильно подойти к вопросу, то программу по учету бухгалтерии (по типу 1ски) можно написать как некоторую виртуальную машину, которая бы реализовывала данную модель. Такая ВМ будет формировать универсальное ядро. А используя собственные фронтэнды, можно во-первых, строить специфические программы для разных отраслей (типа торговли, строительства и т.д.), во-вторых, модифицируя спецификацию можно строить программы для разных стран (так как б/у везде в общем одинаков, но настройки у всех свои).
Система команд такой машины крайне примитивна (например нет циклов, но она ориентирована на параллельную обработку данных) и состоит из операций которые разрешены законами страны в которой осуществляется бухучет.
Бухгалтерские отчеты можно рассматривать как срез внутреннего состояния виртуальной машины - мы заглядываем внутрь - какие значения в каких регистрах находятся.
Такая вот незамысловатая идея. Имеется как минимум одна проблема (и то не в модели). Некоторые вопросы б/у (по-крайней мере в РФ, но не думаю что у остальных прямо вот везде фонтан, просто с учетом в других странах я не знаком) проработаны слабо, и иногда противоречат друг другу (типа в инструкции написано делать так, а в законе по-другому и т.д.). Или например, бухи вынуждены нести два учета бухгалтерский и налоговый. С другой стороны построение системы именно с такой позиции (а не как бухгалтерской информационной системы) может как раз выявить такие проблемные моменты.
Для расчета заработной платы понадобится иная виртуальная машина, поскольку там иной порядок формирования (и сам бухучет ведется как правило группировкой,  не индивидуально по сотруднику - слишком много записей в БД и большая нагрузка на машину). Там потребуется как минимум встроенная система разбора арифметических выражений, поскольку формула расчета зп для разных сотрудников может быть индивидуальной (например, у одного сдельная зп (у работяг как правило), у других оклад (администрация)). Тогда можно было бы вносить расчет как описание новой функции. То есть это виртуальная машина более высокого порядка чем простой бухучет.

ЗЫ. Подумал еще раз про циклы - явно их там конечно же нет, но есть цикличность работы предприятий (например, одинаковые сроки выдачи заработной платы подразумевают периодические операции, такие как расчет зп, формирование реестра зп на зачисление по картам, указание банку выдать средства с расчетного счета на счета работников и т.д.). Может быть такая организация виртуальной машины могла бы и внедрить циклы для упрощения работы бухгалтеров? Фактически они повторяют одни и те же действия (иногда с другими параметрами, иногда в другой последовательности), но не рассматривают это как цикл. По крайней мере в бухучете нет никаких указаний по этому поводу.