While anybody can host their own PDS, the public bsky.app instance can and will “block” users by preventing their login and not pulling data from the PDS of the banned user or showing it in feeds.
Since, to date, the BlueSky “AppView” (the service backend itself that handles aggregating data, generating feeds, etc.) continues to be closed, being banned from the public instance is effectively being banned from the network. The data model (lexicon) is well documented and somebody else is free to write their own, but, for now, BlueSky is just as centralized as other platforms even if you can store your data elsewhere.