Почему опять таки делают свои реализации: контроль. Ну вот заюзал ты стороннюю либу, тот же fatfs, а там баг. Варианты:
1) Сделать правку либы и создать PR. Это делают не так часто, ибо правка нужна здесь и сейчас, а пока согласуют PR уже пройдет куча времени.
2) Сделать правку либы у себя и ее таскать. Это потом превращает поддержку в головную боль, ибо при обновлении патч может сломаться. Если оный вообще делали и есть механизм накатывания патчей.
3) сделать свою реализацию и править по необходимости.
Вопрос в балансе, который не соблюдается.