引数のデフォルト値にメソッドを書くことについて是非をドン

def foo(val = self.get_val)
 …
end

nil でいいじゃんとか
nil にすると省略したときどうなるのかメソッド1行解説でわかりにくいとか
メソッド冒頭で引数チェックするパスカル厨氏ねとか

def foo(val = nil)
val = self.get_val unless val
 …
end