Drawing the line: almost any categorisation has debatable cases, but that doesn't mean it's not worth doing. It's quite obvious that an app like Firefox is different from something like Qt or Python.
Dependencies: the distribution provides, e.g. Qt 4.8 and Python 2.7. Applications that support the distribution work on those versions because their developers knew that's what they needed to support. That's how it already works for open source apps.
Usefulness: if the user wants a shiny toy, they'll go and get one. If that turns out to carry malware, it's just as much of a problem as if they were trying to install something 'useful'. It's not about what you consider useful, it's about what users want to use.
Why should you care: when a new version of, say, Libreoffice comes out, why should I have to wait 2-8 months before I can benefit from it, on the 6 month distro release cycle? Windows users can upgrade the same day. Some things, like Firefox, now get fast-tracked updates, but there isn't the manpower for any distro to do that for all apps.