Just to be clear here, I am part of the Working Title team, not the FBW team, so I can’t speak to their efforts. I will describe what we’ve done though (this will be long):
The flight plan management system is entirely new, from the ground up. We now walk through the sim provided procedure data to generate the appropriate legs and terminators. The sim procedure legs data is actually really good (even with stock data), and has all the different legs types you would expect to find in standard ARINC data, like track to fix, course to DME distance, heading to intercept, heading to altitude, heading to manual termination, etc.
In real FMC data, there are many fixes that don’t have specific names but it’s left up to the FMC to generate a name for them. One example of that would be a heading to manual termination leg. These are basically the equivalent of the instruction “fly heading xxx until vectored by ATC” in the procedure chart. In the CJ4, this becomes a fix with the name
(VECT) and then a discontinuity is added after that fix that the FMS will not sequence past, because it needs instructions from you in order to proceed. Another example of this is course to DME distance legs, which normally get something like the format
D125J, where the numbers there are the course and the final letter is the distance in NM (A is 1NM, B is 2NM, etc). These fixes are not ICAO fixes that you could enter into the FMC by hand, but they are legs and they do have terminations, and will be parsed and pulled when that procedure is selected.
We’re doing the same thing with the provided procedure legs data, and generating the correct leg tracks and termination positions based on the data and a lot of spherical trig. In the stock flight plan system, you will often see USR or USER fixes for a couple of these leg types, but there are also a bunch of leg types that the stock flight plan manager completely skips, leading to the complaints you see about how the navdata is bad. It isn’t bad, actually, it just isn’t being used to the full extent it can be. USR fixes are not related to anticipated ATC instructions or flyover fixes. The stock flight plan manager just skips any manual termination legs completely (which is where you would be vectored).
There are other places that FMCs will normally place discontinuities, such as before the approach so you don’t accidentally sequence on to it before you’ve cleaned up and validated the legs. Finally, this revamped flight plan management system is already available as of Tuesday evening on the CJ4. So you can fly it now, it’s not just an idea or an implementation to be explored, it works today. You can modify the plan in any way that you want, do direct to any fix you desire, even change your approach when you’re already on the approach, all without any navigation interruptions whatsoever. The AP will not send you back to fixes that you’ve passed, you won’t get waylaid back to your origin airport, none of that stuff.
As to controlling the plane along this new, accurate route, we haven’t completely written a new AFCS control system (although it is planned), but we do have custom lateral and vertical navigation, which under the hood uses the heading lock and vertical speed hold modes of the stock AP to generate angular and vertical instructions for the aircraft to fly, which works actually extremely well. The limitations with the Asobo AP aren’t related so much to the actual flight control as they are with the underlying generated fixes. So, we’ve designed a full AP system over the top using those modes underneath, so the experience is seamless and correct to the actual aircraft, including all the correct FMA annunciations. Because the navdata is actually quite good and includes all the right altitude restrictions, we’ve also included a full VNAV implementation, and for good measure we also included the ability to actually fly real RNAV, with correct nav sensitivity changes in the terminal and approach regions, including LPV (with proper angular sensitivity).
Hopefully that lends some more insight into how it works right now, but I’m always happy to answer any more technical questions anyone might have!