I got reasons like "the interviewer quit without submitting his feedback" or "interviewer said he had hard time understanding your voice on the phone" (I'm a native english speaker and interviewer was not), or "interviewer lost his notes", etc. Maybe my code just sucks and they were lying but I don't think so. It took so long to get through that stage to the onsite that I felt like I'd already worked there.
Definitely yes, majority will do full day interviews and reject you because you can't write on a white board.
Northrop Grumman had a (wasteful) 8 hour "college day" that was an hour of technical interviews, 4 hours of propaganda, and 2 hours of arbitrary fluff like team building games among the applicants.
The ~5 or so on-sites I've had apart from NG were 2-4 hours.
I got my current job after a brief phone screen and a one hour in-person interview. It came with a big pay increase and the smartest people I've worked with so far.
I'm not sure why so many companies insist on the days-long torture interviews (I've been through several), but I know they're not necessary to find good people.
I'm also guilty for spending lots of after work days studying for jobs I really wanted and getting rejected but at least I didn't burn any of my precious vacation days.
Apparently I was wrong.
And no, it was just a regular programming job, nothing special.