The argument of monopoly doesn’t make a lot of sense in this case, but let me address your actual concern which I think is Canonical having control over the repository that snapd talks to by default and not having support for easily adding other repositories.
The reason why we’ve done that is user experience. As I’m sure you have noticed, while you and me have this discussion a significant part of world is moving over to different platforms of software deployment in other operating systems, and these platforms focus not on how many servers on the internet can host another APT repository, but on how the user feels when installing software on their system.
So our attention over the past few years has been put not on how software developers can choose to host their packages elsewhere and convince users to run the right sequence of commands and dialogs to enable it, and then open several other edge cases that need to be accounted for. Instead, our attention has been put on making sure that software developers have a fantastic path to offer software to normal people that want to get things working, and give these people a great experience as well.
I honestly can understand how you would like things to be different, and my software development life is filled with personal frustration coming from being unable to make everyone happy, but I’ve also learned the hard way that projects that focus too much on making everyone happy fail because they forget the actual problem they are solving. Here we are solving the problem of having a great platform for distributing software, giving all the parties their share of control, and we’re doing that openly and inviting others that share this goal to join us. The decisions we’ve taken so far reflect that.