I am trying to figure out if there is any reason for this. When I unstake EOS, it shows up on the refund section in a block explorer. Sometimes, the refund goes automatically to unstaked section and sometimes it just stays in the refund section even after 3 days. Is this completely random or is there some reason for this? Does this have anything to do with assigning proxy? If the account has assigned a proxy and if the proxy refreshes their votes, does it reset the clock for unstaking?
I'm actually guessing with this answer so vote down if you think it's bad!
My theory is that it doesn't go straight back into your balance and instead into a Refund section because the EOS is not actually in your account but in a smart contract which holds your EOS in escrow.
This is because it costs CPU & bandwidth to refund the EOS which is something your account should pay for rather than the smart contract.
Therefore, when you engage it for a refund, it checks to see if you're allowed your EOS back, if so it then transfers it too you. All in a transaction you've paid for. (CPU & Bandwidth)
Block Explorers wouldn't want you believing you had 50 EOS to transfer immediately when 20 of it is actually in an escrow, hence the Refund section.