Just to respond to the above comment by the OP "why does linear programming for $K_{2,2}$ fail". Perhaps your confusion is because we need to distinguish between "solving an LP" and "solving an LP using a particular algorithm".
The LP formulation of maxflow (with real variables) has optimal solution (1,0,1,0) (for the edges of the bipartite graph $K_{2,2}$- I'm ignoring the remaining edges incident to source and sink), which corresponds to a perfect matching. The optimal solution (0,1,0,1) also corresponds to a perfect matching. Any convex combination of these two vertex points, such as (0.5,0.5,0.5,0.5) or (0.3,0.7,0.3,0.7), is also an optimal solution to the LP and therefore can be obtained if you "solve the LP".
Visualize a polygon in two dimensions whose one side corresponds to the above convex combination of two corner points. The level set of the LP cost function is parallel to this side, and we are optimizing in a direction perpendicular to this side. So "solving the LP" (i.e. without reference to any particular algorithm) can give any point (not necessarily a corner point) from this side.
The latter two solutions are not vertices, and so if you "solve the LP using an algorithm that gives a vertex solution (eg, simplex)", then you are guaranteed a matching. Am I correct?