Without getting too tedious (or maybe it's too late)... First, Baker's code does not do real-time calculations. It is for calculating deco stops based on a well-defined complete dive plan that you feed into it.
Second, here are some excerpts from Baker's code. I am only quoting the comments, so as to avoid expecting anyone to actually read the Fortran code.
Code:
C===============================================================================
C PERFORM A SEPARATE "PROJECTED ASCENT" OUTSIDE OF THE MAIN PROGRAM TO MAKE
C SURE THAT AN INCREASE IN GAS LOADINGS DURING ASCENT TO THE FIRST STOP WILL
C NOT CAUSE A VIOLATION OF THE DECO CEILING. IF SO, ADJUST THE FIRST STOP
C DEEPER BASED ON STEP SIZE UNTIL A SAFE ASCENT CAN BE MADE.
C Note: this situation is a possibility when ascending from extremely deep
C dives or due to an unusual gas mix selection.
C CHECK AGAIN TO MAKE SURE THAT ADJUSTED FIRST STOP WILL NOT BE BELOW THE
C DECO ZONE.
C===============================================================================
The Note in the preceding code comments would seem to suggest that this comment is not relevant for sport diving. But, keep in mind that this code is not used for real-time calculations and it assumes the diver always makes their ascent (or descent) at a perfect, fixed rate. The actual rate used is read in along with the dive profile that is being used as the basis for calculating the ascent profile. The code does allow for different ascent rates to be used at different depths.
Code:
C===============================================================================
C Note: The Schreiner equation is applied when calculating the uptake or
C elimination of compartment gases during linear ascents or descents at a
C constant rate. For ascents, a negative number for rate must be used.
C==============================================================================
Code:
C===============================================================================
C SUBROUTINE GAS_LOADINGS_ASCENT_DESCENT
C Purpose: This subprogram applies the Schreiner equation to update the
C gas loadings (partial pressures of helium and nitrogen) in the half-time
C compartments due to a linear ascent or descent segment at a constant rate.
C===============================================================================
Code:
C===============================================================================
C SUBROUTINE PROJECTED_ASCENT
C Purpose: This subprogram performs a simulated ascent outside of the main
C program to ensure that a deco ceiling will not be violated due to unusual
C gas loading during ascent (on-gassing). If the deco ceiling is violated,
C the stop depth will be adjusted deeper by the step size until a safe
C ascent can be made.
C==============================================================================
Hopefully, this serves to illustrate that, even though Baker's code is not what you would use for realtime on-the-fly deco calculations, even Baker recognized (in his code) that ceilings should be calculated to include the fact that ascents take some time and are, thus, based on a specific ascent rate.
And that an ascent could result in a ceiling being revised downward (i.e. deeper) - even a ceiling that was 0.
Thus, having a deco stop of 0 feet - i.e. an NDL dive - could result in a mandatory stop being imposed because of a too-fast (or too-slow) ascent. Too slow results in more on-gassing than the algorithm was expecting. Too fast results in getting to a shallow depth sooner than the algorithm was expecting. Either one could mean that you have to do a mandatory stop before you get to the surface - even though your computer's NDL was not at zero when you began your ascent. I.e. you could have a ceiling that you never get to, and so your computer doesn't show you as being in deco - unless you ascend too fast and get to the depth of the ceiling before the computer was expecting you to.