I don't understand the difference between the split nonce/counter design and simply using a random value and incrementing. Why is using nonce +/⊕ counter insecure whereas nonce || counter is secure?
Here's the context of your Wikipedia quote (my bold):
If the IV/nonce is random, then they can be combined together with the counter using any lossless operation (concatenation, addition, or XOR) to produce the actual unique counter block for encryption. In case of a non-random nonce (such as a packet counter), the nonce and counter should be concatenated (e.g. storing nonce in upper 64-bit and the counter in lower 64-bit). Simply adding or XORing the nonce and counter into a single value would completely break the security under a chosen-plaintext attack.
With a random nonce it's perfectly fine to use the whole 128 bits for the nonce and add the counter value to that. Unless you have some way to make sure your nonces don't collide, it's probably the best way to go, even, since it gives you the lowest probability of colliding inputs.
However, with non-random nonces it is in general not, and CTR nonces don't need to be random. Mikero shows the case of a counter in the other answer, but similar attacks would be possible for e.g. monotonically increasing clocks (with a long enough message first).
(By "+/⊕", I mean either addition or XOR, since it doesn't seem to matter which is used for this purpose.)
Well, XOR allows you to go "backwards" while addition does not, so there are nonce strategies where addition would be fine, but XOR not. For example, always starting from a nonce of (previous nonce + previous message length).