Ваш ответ - лучший из известных мне способов. Ключ в том, что у вас есть инструкция по сборке внутри вызова функции, сама по себе.
Компилятор не будет оптимизировать функцию с встроенной сборкой, поэтому, если вы включите встроенную инструкцию сброса в очень большую функцию, компилятор не будет оптимизировать любой код в этой функции. Вы избежали этого, поместив Reset в его собственную функцию. Код в этой функции не будет оптимизирован, но кого это волнует, так как это такая маленькая функция.