No, it works fine. You’re just not understanding the difference between the two modes. Previous when you enabled “Direct Dial” on your IVR your IVR options could not be like your extensions because the IVRs have always used Background() to play the IVR message and WaitExten() to wait for the extension to be entered during the timeout.
This means that if you have extensions 100, 101, 103 and then option 1 for sales in the IVR, you would always end up sending calls to 1 for sales because WaitExten will match the 1 first. So you had to program your IVRs to not collide with dialable extensions.
Now with the “Force Strict Dial” the IVRs use the READ() function to accept digits because it will accept a variable length of digits until the timeout or # is hit. So this is why when you call a lot of places their IVR’s say “Enter X option followed by the # key” because the # terminates the entries.
Force Strict Dial is an improvement because it now allows you to have options in your IVR that can match partially like 1, 11, 111 the READ() option will let all those exist in the same IVR and route to each while non strict will always match the 1 and never let the caller get to 11 or 111.