TL;DR; Don't buy expensive exotics secondhand because maintenance costs will kill you.
BMW's are usually pretty reliable, but I wouldn't buy one with 16 000km on the odometer. My reasoning is that it was probably returned because there was something wrong with it. Or it's been driven by an old man who never went over 40km/h and thus ruined the engine (lots of boring reasons like not getting hot enough to evaporate water and thus causing rust in the engine, etc) It's also a very expensive car to maintain when the service plan and/or warranty expires, which I guess it has seeing as it's a 3 year old model.
Make no mistake, it's an awesome car to drive but I don't think the maintenance costs are quite worth it. I'd rather spend a bit more on an M3. Or otherwise opt for a 325i or an Audi A4 2.0 Turbo of the same year. They're almost the same performance- and luxury-wise, but at a fraction of the maintenance costs. You won't believe how much extra it costs to maintain those two extra cylinders in the 335i.