Dipende.
Ci sono diversi fattori da prendere in considerazione
1) se la funzione fa gia' parte della libreria standard del linguaggio: in questo caso non usarla e' sciocco perche' tanto sta' gia' li
2) se la funzione e' semplice da implementare (POCHE righe di codice) e della libreria che la contiene tu ne useresti solo una piccolissima percentuale (tutta semplice da implementare): in questo caso varrebbe la pena implementarla
3) se la funzione e' COMPLESSA OPPURE della libreria tu ne useresti piu' del 10%, allora vale sicuramente utilizzare la libreria
Generalmente ci sono n-mila librerie che fanno piu' o meno la stessa cosa: in questo caso bisogna cercare la libreria che meglio si adatta alle necessita', cioe' quella che sfrutteresti almeno al 50%.
Anche la scelta della libreria e' un'arte: non basta solo scegliere quella che fa piu' o meno quello che serve, bisogna sceglierla anche in base alla maturita', cioe' a quante persone l'hanno gia' utilizzata e quindi TESTATA.
Le librerie, essendo codice scritto da qualcuno, NON SONO ESENTI DA ERRORI: quindi bisogna tenerne conto: se c'e' un bug,
PER PRIMA COSA si deve controllare il PROPRIO codice
se si e' CERTI al 110% che l'errore non sta li, allora si puo' pensare di controllare il funzionamento della libreria.
Per quanto riguarda la questione delle righe di codice: in informatica TUTTO e' riga di codice.
Il problema e': QUANTE RIGHE? 1, 10, 100, 1000,10.000, 100.000, 1.000.000, ...?
Fino a 10/100 righe, potresti anche ipotizzare di reimplementarti la funzione in proprio (magari mediante copia/incolla, anche se non e' proprio regolare).
Ma se sono 1000 o piu' righe, non ne vale piu' la pena.
Infine, e' necessario avere MOLTA esperienza per pensare di reimplementare una funzione in proprio anziche' usare una gia' pronta:
il numero di rogne che devono essere affrontate aumenta esponenzialmente con il numero di righe necessarie alla reimplementazione.