The first one seems like a good change to me. I admit that I've done this a lot while searching for a particular rare. It's a good way to power through a bunch of spawns. With the change, you can still forfeit matches to check for a rare, but if you want to remove the spawns, you'll actually have to do some battles. It also puts some diminishing returns on forfeiting by damaging your team. I really felt that something like this needed to be implemented.Fleeing a pet battle will no longer despawn the pet that was being battled, but doing so will now inflict some damage on the fleeing pet battle team.
Disconnecting from a pet battle will once again respawn the pets you were fighting.
Any pet that has been killed in a pet battle will now never respawn.
The second one is a very good one. Being disconnected while trying to cap that rare you've been searching for for hours shouldn't make you want to punch through your monitor.
The third one really confuses me and it will need to be tested when the PTR opens. I've seen several options as to how this could work.
Option 1: You're fighting a team of two or three pets and defeat the first pet, then flee. The entire team despawns.
Option 2: You're fighting a team of two or three pets and defeat the first pet, then flee. The team respawns, but only has the second and/or third pet.
Option 3: You're fighting a team of two or three pets and defeat the first pet, then flee. The team respawns, but the first pet is different. The first pet could be a different rarity or breed of the same pet, or a different pet entirely.
I believe option 1 is the most likely and option 2 is the least likely. Option 3 has a lot of potential to be the best, depending on how it works. If it keeps the same pet, but changes breed/rarity, it would become the absolute best way to farm for battle pets.