You're right. Sitecore doesn't warn during unpublish process that if the item is unpublished, all the links pointing to that item will not work anymore. And that all the links which point at descendants of that item won't work neither.
Similarly, if you create a new item and add a link pointing to that item in
master database, and you publish only the link, without publishing your new item, the link won't work neither.
You should handle those situations in your code to make sure there is no error page displayed for the users because of some null reference exceptions. And you should make your content editors aware that they should check if what they published or unpublished doesn't have impact on end users.