No, la función no tiene por qué tomar las variables definidas fuera.
Las funciones tienen su propio "espacio de nombres" (que sería como los nombres de las variables definidas). En PHP las variables globales (definidas fuera de cualquier función) no están disponibles por defecto para las funciones.
Para que lo estén, tenés que usar la palabra "global" delante del nombre:
Código PHP:
function Conectar() {
global $host;
global $usuario;
global $enlace;
$enlace = mysql_connect($host,$usuario,$pass) or die('Error: No pudo conectarse al servidor');
$db_selected = mysql_select_db($bd,$enlace) or die('Error: No se puede conectar a la BD');
return $enlace;
}
Y vale lo mismo para las variables definidas dentro de la función y que quieras usar fuera, en este caso podría ser $enlace (por eso lo agregué a tu código, en principio no lo necesitarías).
Saludos.