Encontré una solución parche, pero acepto sugerencias si hay algo definitivo para resolver mi problema.
 
Al aplicar utf8_encode a la variable $url me dejó con algunos caracteres raros mi cadena. De esa manera averigüé cuál caracter raro corresponde a cada vocal con acento y asunto resuelto: 
á   =   ã¡
é   =   ã©
í   =   ã*
ó   =   ã³
ú   =   ãº
ñ   =   ã± 
Pero solo funciona con cadenas que estén completamente en minúsculas. 
De esta manera el resultado final de la función quedaría así...  
 Código PHP:
    function amigables($url) {
 
   // Tranformamos todo a minusculas
   $url = strtolower($url);
                
   // Cambiamos los caracteres especiales latinos
   $acentos = array("á","é","í","ó","ú","ñ");
   $normal = array("a","e","i","o","u","n");
   $url = str_replace($acentos, $normal, $url);
        
    // Convierto la cadena a utf8
   $url = utf8_encode($url);
        
   //Rememplazamos caracteres especiales
   $especiales = array("ã¡","ã©","ã*","ã³","ãº","ã±");
   $normal = array("a","e","i","o","u","n");
   $url = str_replace($especiales, $normal, $url);
 
   // Ahora cambiamos algunos otros caracteres especiales y códigos por un guión
   $find = array(' ', '&', '\r\n', '\n', '+');
   $url = str_replace ($find, '-', $url);
 
   // Se eliminan los siguientes caracteres que en una URL no nos interesan
   $order = array('°','.',"'",'"',':','@','#','$','%','&','/','=','?','¡','¿','!','[',']','{','}',')','(',',');
   $replace = "";
   $url = str_replace($order, $replace, $url);
                
   return $url;
} 
    
  Como les dije, si alguien sabe de alguna solución definitiva agradezco los comentarios.