Does it make any difference when programming Lionel AF DCC capable engines whether your smoke slide-switch is in the OFF position? I haven't experimented with that to see, but know from converting Gilbert engines with smoke units to DCC that you have to provide a way to hardwire interrupt connection to the smoke unit or the decoder will see it as a short and not program (process CV changes) the way it ought to. I don't know if the smoke on/off switch on L/AF engines is a hardwire disconnect of the smoke unit or not or if having it in the OFF position makes any difference while programming CV's, but thought I'd throw that out there.
I don't use (or like) smoke. I have all my smoke unit switches turned off on all my Flyer DCC loco's. I haven't had any problems programming CV's either on the programming track or Program on Main.