f // Clear
f[x__List] := 2
f[x_List] := 2;
f[x_?(Length[#] > 0 &)] := 2;
f[x___] := 2
f[x___] /; ! TrueQ[$cond] := Block[{$cond = True}, asd]
f[a[1]]
f[{1, 2, 3}]
f[{1, 2, 3}, {1, 2, 3}]
withReorderedDVs[f, FreeQ[$cond], f[a[1]]]
withReorderedDVs[f, FreeQ[$cond], f[{1, 2, 3}]]
withReorderedDVs[f, FreeQ[$cond], f[{1, 2, 3}, {1, 2, 3}]]
2
2
2
asd
asd
asd