Is there a clear line between algorithmic problem and an algorithmic problem instance?
Yes, there is a clear distinction. A problem is a general computational task; an instance is an input to that task.

The confusion in your examples is because you need to make a decision about what the task is and, correspondingly, what the input is. For any fixed domain&nbsp;$D$ and fixed comparison relation&nbsp;$\sqsubseteq$ on that domain, sorting elements of&nbsp;$D$ according to&nbsp;$\sqsubseteq$ is a problem. The instances of this problem are sequences of elements of&nbsp;$D$. For example, the problem of sorting natural numbers according to&nbsp;$\leq$ is a problem, whose instances are sequences of natural numbers. The problem of sorting natural numbers according to&nbsp;$\geq$ is a different problem, though its instances are also sequences of natural numbers.

Alternatively, one could make the comparison operator a part of the input. Now, the problem is to sort elements of some fixed domain&nbsp;$D$ using the given comparison operator, and an instance consists of a sequence of elements of&nbsp;$D$ and a comparison operator. However, it's not clear how you'd specify the comparison operator, which is a binary relation on&nbsp;$D$, which could be an infinite amount of data. One option might be to have a list of allowed choices so, e.g., choice&nbsp;1 means sort according to&nbsp;$\leq$, choice&nbsp;2 means sort according to&nbsp;$\geq$, etc.