ActionLinkは生成時にRouteを逆引きしているらしく、マッチングにクエリ文字列も使っているらしい
ルーティングパターンが複雑化してくると意図しない物にマッチングすることがある
単純パターンのみなら不一致でも動くことが多いが、一旦ハマると原因特定が困難になる
まあ一度地獄を見てみるのもいいぞ 何事も経験だ

○○に見えるけど〜の典型例はモデルバインド
ControllerのAction引数に独自モデルクラスを指定できるが
メンバをベタに書いても同じ動作をする

public class HageModel{
public string hage{get;set;}
public int hoge{get;set;}
}
public ActionResult Index(HageModel hg)

これと

public ActionResult Index(string hage,int hoge)

は同じ