Should a function accept/return values in (row,col) or (col,row) order?
You shouldn't think of what is "horizontal" and what is "vertical". You should think of which convention is widely used not to introduce a lot of surprise to the developers who would use your code. The same is true for naming the parameters: use (x, y, z) for coordinates, (i, j) for indexes in matrix and (row, column) for the cells of the table (in this order).
I agree with @ParalysisByAnalysis that sometimes it depends, but the rule of thumb is to follow the conventions of the subject.
Say I have a function that accepts a row and a column as parameters, or returns a tuple of a row and a column as its return value. I know it doesn't actually make a difference, but is there a convention as to whether put the row first or the column first? Coming from math, if I think of the pair as coordinates into the table, I would intuitively put the column first, as in a cartesian point (x,y). But if I think of it as a whole matrix, I would put row first, as in MxN size of a matrix.
If there are different conventions for different languages, I would be interested especially in c++, c# and python.
By "convention" I mean preferably that that language's standard library does it a certain way, and if not that then second choice would be only if it were so universal that all major third-party libraries for that language would do it that way,preferably with an explanation why.