My view on this: there are several routes between DAW and Software (!) Synth which somehow can "select a patch":
1) a "state" of the Synth. Normally it is a snapshot of ALL parameters. From DAW perspective it is a "black box", it is up to the synth to write/read that information and interpret it. DAW can ask to save or load that block. In Sonar case, that happens during project save/load OR during preset save/load. The later is manual operation, Sonar does not save nor recall these presets on its own. But that is the way to keep all settings in project independent place and restore these settings any time, f.e. when you have finished "playing" with patches inside the plug-in. Note that the preset name is kept the same, so there is no need to "remember" what it was separately. But:
a) some synths "forget" to save some parameters
b) if the synth/preset in fact has several patches, loading the preset does not mean that particular patch will be loaded
2) Automatable Parameters. While current values are normally a part of the "state", some (or all, or no...) parameters can be exposed separately, as named values. So a DAW can control them individually without changing complete state (so without doing "total recall") in case just one parameter has to be changed. In Sonar these parameters can be accessed/edited throw Track Automations. The mechanism includes viewing, editing and controlling either these parameters should be recorded/restored during playback. Writing snapshots are also supported. If "read automations" are enabled and there is some automation recorded, Sonar will (re)set these parameters on playback.
3) Bank/patch selection supported in some soft synths is working in addition to (1) and (2). In the same category are "MIDI learned" parameters, which is another way to do (2).
In practice:
* (1) can take long time since in most cases it involves files loading (wave forms, samples, etc.). So that is in general not possible to do during playback (in real-time). Also enabling "auto-total-recall" will be probably quite bad experience for most users. Just imagine that you have tuned some parameters, loaded patches, assigned MIDI, etc. using your keyboard with transport stopped. Then you decide to check how the result will sound with other material, you press Play and... all your work is gone...
* (2) is per parameter, so recalling it by default on playback is more expected (and so implemented that way). There are all tools to "fine tune" this process when required.
* (3) is individually set in the time line, with "most expected" approach. So Bank/Patch for the track is set in case the playback is started from the beginning (only), inside clip bank/patch changes are sent when transport pass corresponding time. For "MIDI CC" there is "look back" mechanism.
What I want to say, when at some moment I think "it will be nice to have X works Y way", the explanation is normally either in the technical limitations or general expectation (if changed, it will be "unnatural" for most users).