a quale scopo tenere iconv per semplicemente sistemare le lettere accentate? se usi un charset non UTF8 non hai necessità di iconv, ti basta fare un semplice str_replace o strtr

inoltre a quale scopo dichiarare la funzione statica?

codice:
function encodeTitle($title)
{
    $encoded = strtr(array
    (
        '-' => ' ',
        'à' => 'a',
        'è' => 'e',
        'ì' => 'i',
        'ò' => 'o',
        'ù' => 'u',
    ), $title);
    $encoded = preg_replace('#[^a-z0-9-]#i', '', $encoded);
    $encoded = strtolower($encoded);
    return $encoded;
}
fatto questo ci sarebbe anche la necessità di sostiturie più trattini con uno solo ... quindi

codice:
function encodeTitle($title)
{
    $encoded = strtr(array
    (
        '-' => ' ',
        'à' => 'a',
        'è' => 'e',
        'ì' => 'i',
        'ò' => 'o',
        'ù' => 'u',
    ), $title);
    $encoded = preg_replace('#[^a-z0-9-]#i', '', $encoded);
    $encoded = preg_replace('#-+#', '-', $encoded);
    $encoded = strtolower($encoded);

    return $encoded;
}
non l'ho provato, sono a casa di un amico, non ho l'ambiente AMP in ogni caso il risultato dovrebbe essere lo stesso senza però utilizzare iconv, soprattutto perché quella funzione dipende dal "locale" utilizzato sulla macchina: magari sposti tutto su un altro server o in un altro ambiente e rischi di ritrovarti svariati casini qua e la

http://it.php.net/manual/it/function.iconv.php#77315
http://it.php.net/manual/it/function.iconv.php#74101
http://it.php.net/manual/it/function.iconv.php#83238

e cosi via se cerchi nei commenti