Jak to często bywa, to zależy.
Czasem baza danych to ważny element projektu i nie jest tylko schowkiem na dane dla jednej aplikacji. Może być projektowane przez osoby, które nie są programistami tylko bazodanowcami. Przykłady można mnożyć i wtedy Code First już tak dobrze się nie sprawdza.
Dla projektów, w których z góry wiadomo, że baza ma być tylko "rozszerzeniem pamięci operacyjnej aplikacji", oczywiście z nieocenioną właściwością, że nie czyści się przy restarcie serwisu, apki czy czegokolwiek, wtedy Code First jest spoko.
Przy czym ja na przykład lubię grzebać się w SQL i korzystam tylko z database first. Bo po prostu wolę to podejście :)