I suspect that each time a MIDI file is loaded in FluidSynth, it initializes all the controllers to known default values.
There currently aren't any commands within the shell to play MIDI files. If there was, it would be possible to say something like "play my.mid" and then do your CC commands afterwards. So it seems like there isn't a very good way to do what you are trying to do at the moment, from the FluidSynth command line application.
An alternative is to use an external MIDI player connected to FluidSynth, such as aplaymidi. You could then initialize FluidSynth with the settings you want and then play the MIDI file via the external application. This would retain whatever controller values you assign, except for those which get assigned by the MIDI file.
The MIDI router feature of FluidSynth can probably be used to override CC11 or CC7 assignments. I just did a search on Google and came up with this thread on fluid-dev. I thought this topic seemed familiar ;-)
So basically what I said above is mostly a repeat of what is in that thread. Here is a copy paste of the router rules I posted then, which makes any CC7 assignment set the value to 100%.
router_begin cc
router_par1 7 7 1 0
router_par2 0 127 0 127
router_end
And this is for CC 11:
router_begin cc
router_par1 11 11 1 0
router_par2 0 127 0 127
router_end
Description of above rules:
router_par1 sets the CC to modify (first 2 parameters are min/max, which defines a range of CCs to match). The remaining 2 parameters are multiply and add, so basically multiply the CC controller number by 1 and add 0, which means the CC controller number will be unmodified.
For router_par2, the min and max are 0 and 127, so match any value for the CC and then modify it by multiplying it by 0 (which equals 0) and adding 127. So the final value will always be 127 regardless of what is assigned.
Best regards,
Element