Ja osobiście nigdy nie przejmuję się długością kodu, za to jego czytelnością, pewnością i wydajnością. Jeśli twórcy wrzucili coś do zestawu funkcji, to mam pewność co do 2 i 3, a i to 1 zazwyczaj z racji odpowiedniego nazewnictwa nie jest problemem. Zauważ, że przy własnej funkcji musisz i tak zastosować dodatkowe parametry. Choćby niejawnie zaszyte wewnątrz niej. Ale by była uniwersalna, to i tak musisz dać parametr opcjonalny. A co, jeśli przyjdzie Ci dodać nowe warunki, jak ograniczenie górne? Znowu przeróbka funkcji własnej, dopisanie kawałka kodu itp. Czy więc zrobisz własną funkcję czy też użyjesz przygotowanej przez twórców to już kwestia preferencji. Choć dzięki gotowej oszczędzasz czas.
Myślę, że po to są one napisane by nie wymyślać koła na nowo. No i sam zapis de facto się skraca trochę. Nie musisz bowiem definiować, zmieniać metody czy funkcji tylko polegasz na sprawdzonym rozwiązaniu. Oczywiście to tylko moje zdanie i możesz go nie podzielać. Masz do tego pełne prawo. Wygodniej jednak operować na odpowiednich flagasz i strukturach dodatkowych, które modyfikują działanie uniwersalnej funkcji niż pisać ileś wersji jednej, zależnej od typu lub pisać innym kodem to samo i później zastanawiać nad warunkami by nie trafił się jakiś wyjątek