Guys,
We've found the cause of the problem, at least for our case.
In the input form in question, we use EPMMemberProperty on time dimension in column axis based on a condition on one of its properties to drive dynamic number of dimension members to expand.
Now, it's this setup that causes the problem. BPC doesn't seem to determine the result of EPMMemberProperty before the first refresh, but seems to do it [after / at end of] the first refresh, making the second refresh work.
So what we did (for now) was we went into the cell in which EPMMemberProperty is used and press Enter simply to trigger the calculation of the formula. Then, we simply saved the input form back onto server.
Of course, there's a better to solve this by not using EPMMemberProperty altogether and determining the property some other way, but that's another story and it depends on the requirements of the input form (or report) in question.
As for how I found out it's the time dimension, I simply turned on BPC_STATISTICS parameter and went into transaction UJ_STAT to find out that the time dimension member passed to the query in the backend was the wrong year -- it's last fiscal year, meaning it's not refreshed to reflect new fiscal year. Other dimension members in the query were fine.
Hope this helps more or less,
Anirut W.