I often use type-hinting when creating things like observers eg.
public function obsSalableAfter(Varien_Event_Observer $observer)
I've found this to be a useful notation to developers if docblocks are missing, as well as obviously the underlying benefits to PHP. However, I came up against a problem yesterday, where I installed an extension into an existing store, and it had a type-hinted a specific function. It turns out, something in the shop I'd inherited was already over-riding this, and PHP was throwing an error due to the mis-matched type.
So, that got me thinking - is type-hinting of any kind good in extensions that are being released to work across multiple stores, since you don't know anything about the target enviornment?