SSHSSH
Q2) set default_pool [LB::server pool] = this is setting up a variable (default_pool) that is referenced further down the iRule. So it will record what the default pool is associated with the VS and then refer requests onto this if they're not in the list of URLs. So the command would then be "pool http_pool" or whatever is the pool's name.
Q4) string tolower converts the whole host and URI into lower case - so, in effect, makes the switch command case insensitive. You probably don't need the HTTP::uri but I would use it for neatness so the whole URL is interrogated. May be wrong of course.
I'm not an iRule expert I'm afraid but hope this is useful / correct.
N