回答と呼べるほどのものではなく単なるとんち的なものかも知れませんが、alias_methodの方はメソッドなのでデバッグ目的などで再定義する余地があるという点が使いどころになるかも知れないと思いました。
barメソッドに別名を付ける意図でalias_methodを用いようとして実はtypoによりグローバル(?)な定義のbarを参照してしまっていたいったバグが見つかった・・・というちょっとこじつけっぽい例ですが。
ruby
1# test.rb
2class Module
3  alias_method :org_alias_method, :alias_method
4
5  def alias_method(to, from)
6    if ! method_defined?(from) then
7      puts "alias_method: " + from.to_s + " is not defined in " + self.to_s
8    else
9      org_alias_method to, from
10    end
11  end
12end
13
14def bar
15  "global bar"
16end
17
18class Parent
19  def bar_typo # <---- typo
20    "parent bar"
21  end
22end
23
24class SomeClass < Parent
25  alias_method :foo, :bar
26
27  def baz
28    foo
29  end
30
31  def bar
32    "child bar"
33  end
34end
35
36p SomeClass.new.baz
37
38===>
39$ ruby test.rb
40alias_method: bar is not defined in SomeClass
41test.rb:27:in `baz': undefined local variable or method `foo' for #<SomeClass:0x000006002a9ad0> (NameError)
42Did you mean?  fork
43        from test.rb:35:in `<main>'
rubyのプログラミングスタイルや言語仕様に暗いのでトンチンカンなことを言ってしまっているかも知れませ。その際はご容赦ください。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。