Encoder vs Hall Effect for FOC control of BLDC
Hall sensors are used for correct six step commutation used in BLDC control. BLDC is almost the same as PM DC motor with a difference that instead of commutating rotor with brush commutator, the commutation is done on stator windings by use of electronic switches. The correct timing of switching is determined by hall sensors.
Field orientation is different, so that there is no such thing as simple commutating similar to brushes like BLDC.  Instead there is a constant alignment of stator flux regard to rotor flux, therefore a more precise rotor position is needed. As the rotor has to be determined with absolute position with regard to the stator frame, only absolute encoders are suitable - resolver, absolute encoder, selysn, synco ...
However due to their complexity and cost these absolute encoders may be replaced by incremental encoders with use of some complex algorithm that estimates the approximation rotor absolute position at start up. When the drive is turned on, the motor makes some wheezing sound and determines the position. This initial estimation procedure is subject to PMSM type, difference in longitudinal (d-axis) and transversal (q-axis) inductance, difference in reluctance, ... and it is not a general approach, rather for a very known  motor with all its parameters. Once the approximative position is determined, the motor can start and the position will be corrected when the encoder will trigger the Z track, used to give the exact alignment.
The sensorless control is achieved by measuring BEMF voltage while the switching element is in OFF state during  PWM control. The main problem is that at low speed the BEMF voltage is low and below noise threshold, so not very useful if you want to do positioning tasks. Another state of the art technology is to use a high frequency injection, then with special rotor shaping, like buried magnets PMSM it exhibits different inductance/reluctance in d/q axis. By measuring the phase voltages the algorithm is capable to determine the absolute rotor position. This might be a game changer for some simple machines that do not need a very accurate positioning.