The lowest-level "externally visible" control loop for a BLDC motor is torque control loop, that then drives the phase current control loops. Torque above the friction: go faster. Torque below the friction: go slower. All the way to torque against the direction of rotation: go much slower. Brake.
You don't really care much what the frequencies are, because that's not a commanded input (other than protecting the motor from overspeeding, and the loss of torque from back-EMF).
The basic FOC torque controller is just that: torque command goes in, the motor produces the desired torque. The FOC transforms rotate the current vector to align it with the rotor's electrical vector, at whatever speed the motor happens to be rotating. Rotor position feedback - whether encoder-based or sensorless or sensor-fusion based, produces the angle fed into the Park transform, and that takes the torque command and drives phase current commands for the bridge to execute. There are a few nuances, but at a high level that's about it.
In fact, regenerative braking is just a choice - the control will work exactly the same from DC link to the motor phases. When the motor is braked, the energy is transferred from the motor to the DC link. The excess energy on the DC link is either dissipated on a shunt resistor, or is back-fed into the supply (battery or mains). So, if you partition the system into the back-end - the servo - from DC link to the BLDC, and a front end - from battery/mains to the DC-link and optional shunt - the regenerative braking can be added at any point by just replacing the front-end.
The normal braking method of turning on all the low side FETs cannot provide this level of control.
Whether that's normal or not really depends. First of all, it won't just be low-side FETs all at once: even when braking the current has to be controlled and limited, since the braking torque is variable. But a FOC can indeed use a switching pattern that dissipates the excess recuperated energy from DC-link in the motor windings: the motor can be used as a shunt during braking.
Given that the conduction losses on the stator go with square absolute torque - whether accelerating or braking - adding thermal load to the stator by additionally dissipating braking energy is not a default. It can only be done when the motor has enough thermal capacity to dissipate this energy. Otherwise, a shunt resistor in the DC-link that dumps energy when the DC-link voltage is above a threshold is cheaper than heating motor windings.
In general, for velocity control, the control loop is closed around the torque control loop, which is closed around the phase current control loops. The velocity controller will be braking and accelerating the motor "all the time" in face of highly variable load.