Mirándolo rápido no veo nada que objetar, para lo que mencionas al principio puedes usar "or":
if (ARGV[0])=="-h" or "--help"
help()
--EDIT--
Para que el archivo no se reemplace con File.rename puedes comprobar si el archivo ya existe con File.exist?(file)
Esta podría ser la forma correcta:
if (File.exist?(path_to_file))
print "ERROR!!"
--EDIT--
Una sugerencia más, para reducir la cantidad de lineas, puedes definir una función más genérica, que reciba parámetros, y llamar a la función en base a los argumentos. Me refiero a que se simplifica mucho de la siguiente forma:
def reemplazar(caracter_a_reemplazar, nuevo_caracter)
Find.find(ARGV[1].gsub("\\", "/")) { |path|
path = path.encode('utf-8')
if path[caracter_a_reemplazar] then
File.rename(path, path.gsub(caracter_a_reemplazar, nuevo_caracter))
$renamed += 1
end
$total += 1
}
end
if (ARGV[0] == "-c" or "--comilla")
reemplazar("\u004B", "\u0027")
else if ...
Saludos