This is because these examples follow the formal definition of the big O notation.

You can read about it here: [The stupid system stripped my link because I don't have enough "reputation"… So just search for "Big O notation" in Wiki]

Formally, f(x) = O(g(x)) if and only if there is a M>0 such that from certain X: |f(x)| < M * |g(x)|.

What this basicly means is that that expression inside the "O()" just has to be kinda an upper limit to f(x) but don't have to be the "sup".

For example, I could have also said that:

1000n log2(n) = O(2**n)

I also found these examples quite confusing because allmost every time you will see a reference to the big O notation, we will mean the "sup". Just like in the first example you gave.

Also notice that this formal definition is important for solving question 5א in the HW. You should prove/disprove by this formal definition.

I hope I helped made it clear for you because this is kinda confusing :)