The issue you are highlighting is that of computation model, which is how we measure the resource consumption of an algorithm. The computation model specifies how to assign time complexity, space complexity, and so on to a given program (whose syntax it also specifies). There are three popular computation models:
- Turing machines, of various sorts.
- Boolean circuits.
- RAM machines, of various variants.
A variant of the RAM machine can be specified in terms of the allowable basic operations, which is the issue that you encountered. For Boolean circuits, the analog is the set of allowable gates, and for Turing machines there seems to be no such analog.
In contrast, here is an actual example of how oracles are used in theoretical computer science.
A submodular function is a set function $f\colon 2^U \to \mathbb{R}$ (i.e., a function that accepts a subset of $U$ as input, and returns a real output) that satisfies a technical constraint known as submodularity.
Submodular optimization is the field which studies how to optimize submodular functions relative to various constraints (including no constraints).
A typical problem is:
Given a submodular function, find its minimum.
How is the submodular function "given" to us? It could be given to us as a truth table (i.e., the value of $f(A)$ for any $A \subseteq U$), but this is not a realtistic assumption. Rather, there is often an efficient algorithm that computes $f$. In most cases we are interested in an algorithm which is oblivious to the exact algorithm used to compute $f$. In these cases, we are looking for an algorithm which has oracle access to $f$, that is, the function $f$ is provided as an input oracle.
(In other cases we would like to use the code for $f$. This happens usually when $f$ has a particular structure, for example if it is a coverage function. In cryptography we sometimes want to "open the black box" even when $f$ has no particular structure.)