Well, a quick note: you can change the graphic of an event without changing the page. It's one of the options in a Move Event command.
I don't know about this label jumping feature you want - can't you just revert it to the conditions you want? What I particularyl don't like about it is that what if the page it is jumping to doesn't have the conditions fulfilled? Or if subsequent pages do? It would alter the way RMVX processes event pages altogether, and I don't know if it's worth it. I think the better way is just to activate the correct condition.
For the increased self switches: there would be no way, short of modifying the program itself, that you could make it so that additional self switches can be accessed, modified, or checked through the database system that you currently use. While more self switches can be added, they would have to be used through script calls. That's just part of the program. What I would suggest instead is using a single variable to track the progress for each event. When variable == 1, it could be a weed, when variable == 2, it's a clear plot, when variable == 3, seeds planted, etc...
It would only require one variable that way, and not a bunch of global (or self) switches.