миллион файлов это хорошо, но мутарно. каждый модуль свой файл, это как минимум,
а лучше стандартные куски, которые могут быть использованы в другом проекте дробить по ф-ям и помещать в отдельные каталоги.
open/close в одном файле
read в другом
write в третьем.
если write не пользуешь то и линковаться он не будет.
какой риск в именах? переменные в модуле static. глобальные, только в случае крайней необходимости + префикс g_