Check to see if you have later configuration items in your client configuration which override your earlier "route-nopull".
To avoid this, make the "route-nopull" the last line in your client config, and enabled "verb 4" to see that your client option is being used in the resulting log file. (This is the most common problem I've seen when adding a config item seems to not change things.)
Make sure that the config file you are altering is actually the one being used by your client. (Second most common cause for changing config not changing use.)
If that does not help, you can try "pull-filter" with accepts and ignores for what you do and do not want added.
If that does not help, you could try this:
pull
route-noexec
route-up YOUR_ROUTE_UP_SCRIPT_HERE
up YOUR_UP_SCRIPT_HERE
down YOUR_DOWN_SCRIPT_HERE
And then have your scripts control what is added and when. It will mean parsing variables/arrays that the calling openvpn prepares for the script to use.