Been batting four since NZ. I think he came up the order probably because the Coach thought he was as his run of T20 score before that was poor. Since he's been promoted to four, he's done better.
In all formats think Sarfraz rather prefers to bat down the order. Allows him to focus on captaincy (as well as keeping more). Think he sees himself as a captain first and player second.
As a pure player he's gone on record saying he actually prefers to bat up the order, even opening. As it gives more opportunity to perform/build. But obviously as captain he's not really fighting for his place anymore.
Hard for him to bat at four in ODIs as there are better batsmen who by logic dictates deserve to bat ahead. In T20s it's easier as innings are usually short anyway, so people care less about batting position, at any position you're expected to tonk it (except maybe opening where you build a bit of a base). Also in T20s, there's few collapses so no need for the rescue captain role (which again I think Sarfraz sees himself doing more, I think he aspires to be Dhoni in many ways).
Lastly T20s are more fun, ODIs are usually where a player cements his place in the side. Hence Sarfraz batting up the order hides other specialist batsmen and doesn't give them the opportunity to stake a claim.
In ODIs Sarfraz's performance at 6 isn't as bad as it used to be, but I don't really see it possible for him to be batting above 5 given Babar and Haris take 3rd and 4th positions respectively. I think no.5 is probably his best position in ODIs though, and if both him and Malik are in the team, I'd bat him one spot ahead of Malik.
What's going to be interesting is how they're going to fit all of Babar,Talat and Malik all in the same team in ODIs when Babar comes back. There isn't enough space. The only way I can imagine is promoting Babar to opening which they might do, but then you're moving a player who has scored so many runs at the important no.3 position.