Разумно ли импортировать одни и те же библиотеки в каждый модуль?
В каждом модуле импортируйте всё и исключительно то, что нужно для работы непосредственно этого модуля. Так ваша система будет гибче и работать с каждым модулем отдельно будет проще. Модули устроены так, что импортируются только раз, не зависимо от того, сколько раз вы вызываете require.

Ваш подход вполне нормальный, если вы конечно не импортируете в модуль А что-то что используется только в модуле Б и не используется в модуле А непосредственно.

Выносить все импорты в отдельный файл, как предлагает Дмитрий я бы не стал.

А  все модули передавать напрямую в функцию (как это сделано со state) оправдано только в том случае, если вы реализуете паттерн Стратегия
Тогда уж просто соберите их все в одном файле в объект и импортируйте объект, зачем так сложно?

const os = require('os'),
  path = require('path'),
  fs = require('fs'),
  kb = require('../modules/keyboards.js'),
  config = require('../config.js');

module.exports = { os, path, fs, kb, config }