I think you answer your question in the question, so that it becomes somewhat rhetorical.
Obviously you're talking about a similar system to the one Google encourages with Android and the Intent system, that an application can publish actions which it is capable of doing on behalf of other applications, which can then hook into them and pass data back and forth. Personally I think it is something which we need to head towards as good developers - we use WordPress because it's already awesome, awesome enough to make the decision over whether to use it or develop a similar in-house product pretty easy in most cases. The plugin repository itself is again the same thing, mostly as an end user + developer - why develop a twitter plugin when there is a perfectly good one.
The same 'why develop duplicates' is at the crux of your question here. The Android Intent system allows applications to utilise already created functions, and pass data between them, and this is popular and often used, because it is pushed so heavily. There is a similar system already implemented into WordPress, but is very rarely used beyond the hooks present in the core code, which are used a great deal.
It would benefit the community if more hooks in custom plugins were present, but as you say, there's no easy way to add hooks in when/where you need them.
In terms of the Twitter plugin you want to hook into, send the author an email, I'm sure he would be happy to add them in for you.
If there's a place you think would be a good place to put a hook into in your plugin, do it, and document it well. If more people start to put hooks into plugins, or there is a general push towards doing so, it will happen eventually.
So to answer your ending question of:
Do we just need to try and be better plugin developers so that we can all play nice together?
Edit: I've thought some more about the actual question and the best way of implementing hooks, couldn't you add an action that would run if the particular function you are trying to run of the plugin was present?