I have come across the expression software/feature bloat, but is this a real thing or should we rather be talking about things like performance problems, memory and disk footprint, user experience and on-demand installation? What am I missing here?
In my experience, it is because feature bloat is a root cause of problems rather than a direct problem that it useful to think of it separately.
In addition to the potential problems for the end user listed in the original question, feature bloat can have significant maintenance cost. When adding a new feature it's important to not only consider the cost of developing that feature, but maintaining it over the lifetime of the product. The oft-quoted rule of thumb is that time spent on a feature is 20% development and 80% maintenance, but in the real world it varies widely depending on feature complexity and degree of interaction with other features.
There are two meanings of this:
First is not about technical shortcomings, it's about user experience. Unnecessary features make it harder for user to figure out the application. User will perceive application as too complicated and will not know how to do basic stuff.
Second is that having too many rarely used features makes software bloated in terms of memory and disk footprint. That's why in lot of applications you have plugins instead, which can be installed only when you actually intent to use them.
A very similar term is "feature creep". vartec's answer is a better explanation of "feature bloat" but you should also know what "feature creep" means.
Basically, as a project evolves there is often a tendency for more features to be added to the project. This becomes a serious planning problem, as it is impossible to ever finish a project that keeps changing and increasing in scope.
Where "feature bloat" connotes more of a user experience problem, "feature creep" is more of a scheduling problem.
I think software bloat and feature bloat are two differentt things.
A particular feature could be implemented with less code, so it's not the feature but the software that is the root of the cause. Developers need to be constantly reminded to not add features that weren't requested.
It's tempting to jump all over the number of user requests. Sure they can ask too much relative to the development resources available, but programmers often add features of their own. Developers tend to bring a bazooka to a mosquito hunt.