If the choice for the algorithm depends on the hash of the previous block, I cannot see how anyone could steer the next function?
A large pool/ASIC group could grind blocks until they get blocks that steer it to something they like.
Pool is good at hashing alg X. It's at Y, which is close to X, giving an advantage. They decide they will only release blocks if it moves it closer to X. Once X is achieved they own the dominant hashing power by manufacturing fiat.
But also, as mentioned before, you're going to get naturally bad PoW algorithms that don't scale correctly, or take too long to verify, etc. Even without "malicious" actors you're going to possibly get crazy behavior.