Re: program efficiency / small, single-purpose tools
I get the philosophy, and I've written lots of CLI programs myself that run in just this way. However, the problem in many cases is that those programs don't always work in the ideal way, making some of your comments optimistic.
"Re: "writing temporary data to a disk": we're no longer in the days of CP/M. Windows, OS X, and *nix implement pipes internally, without resorting to temporary disc files."
And some programs use them, with just one input file and one output file. Some programs have more than one of those, and since piping around directories requires standardization we don't have, they don't get used. Sure, we could write a program that opens several pipes and another program that expects to read from that many, but the point is that we'd have to write both programs to expect a situation that's not always applicable. Also, there are programs that don't follow that rule. I'm using one now: it takes a file and you have to give it a path, it writes a much larger file to a path, not including standard output, and in my case, I immediately take that file and throw away most of its contents. That program could be implemented so I could pipe data through, but it's not. I get around the inefficiencies by using a ramdisk to store the temporary file, which is fast but still not ideal.
"You seem to be expecting/hoping that MegaApp X will have all the specific functionality which you desire"
Well more suggesting it's possible than expecting them to do it automatically, but sort of. Having to export a file from one application to another, possibly multiple times, can be inefficient if the original application could add a feature to do the action. For example, printing a file probably should be done by the same program that displays it, rather than having a system-level print application and making that understand every file format you might use. That doesn't mean the application needs to connect directly to every printer, but it can collect information needed to convert the file to a printable version and call the system print handler which only has to know how to pass a standardized file to the hardware.
Or take another example: you could have an email program and a calendar program, and you do the connections yourself. For people who know how to script both, maybe you can get it to automatically do things based on emailed information related to meetings. However, not everyone will do that correctly if at all, and those actions are very likely to be connected. A program which does both of those and understands how to automatically consume responses to meetings, meeting request emails, and the other messages likely to be of use is likely to save more time than two very good programs that only do one of those things.
"Further, MegaApp X likely will not be ported to non-mainstream operating systems. Likely it will be a Windows-only app, and even then, might not work on older OS versions."
That's not really a problem with the size or structure of the application. You can have platform-independent massive GUIs and you can have OS-specific programs that are twenty lines long. Take the program I mentioned that writes a big temporary file. Why don't I just edit the code to fix it? Even assuming it would be that easy, I don't have the code. It's provided by a place which doesn't want to give me the code and hasn't made the format the code reads open, so I have little choice but to use their utility as it is. It's a pretty basic command line program, but if I want to run it on a non-AMD64 Linux or one that doesn't have a new enough glibc, I'm out of luck. Windows is right out with this thing. Anyone can have that problem, and anyone can avoid it.