The reason it works like this is because it's impossible for every server to store all posts by all users on all other servers. The costs would be huge, data would be duplicated on thousands of servers and most never used.
So, servers notice what they need to notice.
A solution to the problem you raised would be that once an account is followed, the server should backfill older posts. This is the second most requested feature on the Mastodon github: