In general you are right about pigeonholing/specialization in large companies. But it usually happens after you are hired, not before. Right now, without industry experience your skillset is very broad and it is hard to pigeonhole you.
As for the interviews, if they are like an exam where you know questions in advance you certainly should prepare. Sadly, this is usually not the case. As you mentioned in your point (4), sometimes you have no idea what the role is about. And there is no way to know because your recruiter doesn't want to get specific or maybe has no idea herself.
Which brings me to an important point which you might be missing. If you are applying for jobs through websites or by any other well-publicized way, you will inevitably subjected to a vetting process. The interviewers do not know anything about you and are basically looking for reasons not to hire you. If you are very good technically, it increases your chances but it is no guarantee of passing. Good communication skills are just as valuable.
It is different when you know someone inside the company, say your friend recommends you. You will have more meaningful interviews from the start. Most startup/small company hiring is done this way.
That said, with your background you should have little problems finding a job, if current Big Data hype is to believe. But of course it depends on your school, where you are looking etc.