You can use Evaluate to evaluate the arguments of a HoldAll function in a controlled way.
Even when a function has attribute HoldAll, Sequence objects that appear in its arguments are still by default flattened, Unevaluated wrappers are stripped, and upvalues associated with the arguments are used.