What is the most efficient way to recompute maximum flow in a graph when:
In the first case, is is enough to run one iteration of Ford-Fulkerson algorithm? In the second case, we need to recompute maximum flow only if the edge is part of a set of edges of maximum flow. Is it also enough to run one iteration of Ford-Fulkerson?
In the first case, "yes". That is essentially how Ford-Fulkerson works. Imagine you were running Ford-Fulkerson from scratch on the modified graph. You could have started out by running the exact same steps as you did on the original graph. To really understand why it works, it might help to look at how max flow is related to linear programming (see e.g. https://www.cs.emory.edu/~cheung/Courses/253/Syllabus/NetFlow/max-flow-lp.html).
In the second case, the answer is basically "yes" if your capacities are all integers. The first thing you would want to do is to modify your old max flow to satisfy the new constraint. You can do this by essentially finding a path from source to sink along your flow that goes through the decremented edge (this is not hard to do, just start from the decremented edge and "follow" the flow). Then, subtract 1 from your flow for each edge in that path. You now have a flow which satisfies the constraints, but might be suboptimal. However, it is at most only 1 less than the optimal flow, so again one iteration of Ford-Fulkerson will work.
Things can be more complicated in the non-integer case, and in the worst case you'll have to basically re-solve the problem. I am not familiar with the best algorithms here, but you can search for "dynamic max flow". See also https://cstheory.stackexchange.com/questions/9938/incremental-maximum-flow-in-dynamic-graphs.