it is well known that the upper limit of bitcoins is 21 million, which can be calculated mathematically; but from documents i have read, this is because mining a new block is defined to have diminishing returns (1 halving per 210k blocks); is this the sole factor limiting the possible number of coins? is there anything i missed in this crypto system which becomes more and more difficult over time and finally becomes computationally infeasible that is limiting the number of coins?
No it does not become computationally infeasible, 1 halving per 210.000 blocks leads to a total of 21m due to math.
Bitcoin block reward is 50 for 210.000 blocks then 25 for 210.000 blocks then 12.5 etc. So the total reward is 210.000 * (50 + 25 + 12.5 + ...). Inside the parenthesis is a geometric series which can be rewritten as 50 * (1 + 1/2 + 1/4 + ...).
Now using the formula in the link we have
a = 50 and
r = 1/2 and the sum of this infinate series is 100. Multiply that by 210.000 and you get 21 million bitcoins total (actually a little less than that because a bitcoin is not infinately dividable).