Trying to reproduce a bug by doing something different than what the customer did is a good way to waste time, in my experience.
One of my first really nasty bugs of this kind was platform-independent, in the sense that the fix affected all platforms. Once I had found the buggy code it was easy to reproduce it on my development workstation by constructing a more efficient reproducer.
But it did not affect all platforms equally. With the hardware on my desk it led to a slow memory leak and would crash after a month or more, on a particular customer's hardware it leaked all memory in an hour, and the customer had more memory than I. I don't remember why, maybe the different CPUs changed whether a race was lost/won? Anyway, I could have gone a year without noticing the bug in my office, but even on the same platform as I personally used, customers would have infrequent crashes.
So. Platform-dependent or not? It's hard to classify in those terms, don't you agree? And that's typical in my experience.
Depends on the type of software. I feel like PC games are on the extreme end of having lots of minor bugs and one very dominant platform.