Credo che semplicemente l'errore venga segnalato in quanto non tutti i "rami" di esecuzione del codice restituiscono un valore di ritorno nella funzione che hai creato, e ciò viene - fortunatamente - segnalato, in modo che il programmatore vi ponga rimedio.

La logica dietro le funzioni che hai creato è un po' strana, con un valore di ritorno di tipo Object estremamente generico, per non dire il più generico possibile: ti constringe a scrivere all'esterno un sacco di condizioni di verifica del tipo di oggetto restituito.

Valuta bene l'impatto e l'utilità delle classi che crei, per accertarti che quanto scrivi per costruirti una utilità non diventi alla fine una complessità in più nel codice.

Ciao!