Как создаётся внешнее API программы?
> 1 Как создать для неё API (читай драйвер)? 
Изначальная постановка вопроса не верна. API не есть драйвер. прям вообще ни разу.
> 2 Что будет использоваться для взаимодействия драйвера и работающей базы (может сокеты, может ещё что)? 
А что захочешь, то и будет использоваться. Хоть сообщения, хоть сокеты, хоть файл на диске. Тыжпрограммист, кто тебе запретит.
> Могу ли я из драйвера вызывать какую-то функцию
Можешь вызывать функцию (экспорты никто не отменял), можешь посылать сообщение, можешь посылать JSON строку, можешь сразу SQL запрос сформированный посылать, кто ж запретит.
Ты же на сишечке пишешь, так что никто тебе не указ, реализовать можно практически что угодно. Как пользователю удобнее будет общаться с БД, такой API и  создавай.
Судя по коду mongo работает через TCP сокет.
В Unix бывают следующие виды IPC(inter process communications - межпроцессорное взаимодействие) Статья в русской википедии
1.Pipe
2.FIFO, or named pipe
3.Socket and Unix Domain Socket
4.Message Queue
5.Signal
6.Semaphore
7.Shared memory