When you store a URL as the metadata of ERC721, does that defeat the purpose of the immutability aspect of a blockchain, since the content that URL is pointing to can be modified? How do I effectively use the metadata of ERC721 without storing everything on the blockchain? I know IPFS is a popular choice, but could I use a conventional URL endpoint and still have it align with the purpose of ERC721?
This is a very important topic, and it's been pointed out that not enough attention is given to it.
Ultimately, immutability is a bit of a spectrum. If somehow every last device storing the Bitcoin and Ethereum networks would be destroyed, the networks would be lost. Fortunately, that is improbable enough to not worry about. Similarly, even IPFS is not as permanent as people think sometimes. Files that are not accessed often have a chance of getting dropped of the network. (This can be mitigated by running an IPFS node and pinning, but then users are somewhat dependent on either running their own node, or relying on someone who does.) Arweave has very strong liveness guarantees (that means guaranteeing that your file will always be there), along with immutability (that your file cannot change). Mintbase uses them for their NFTs for those reasons, as does InfiNFT.
Does that mean that you must use Arweave in order to make an NFT? It depends how far you want to go in guaranteeing the immutability and liveness of the underlying asset being tokenized by the NFT. The same goes for IPFS. And, to answer your question directly, the same goes for using a URL. There should be a spectrum in using a URL too - you could reduce the problem by ensuring NFT purchasers have some level of agency in the platform they are stored in - that they are able to renew the domain, and to re-upload their content to their endpoint in the event it goes down.
That's just one idea. The basic idea behind it is that there should be as much transparency as possible about the URL and its management. It isn't a perfect answer to all of the questions of immutability and liveness, but will be the most you can do in aligning with the goals of decentralization, like you mentioned in the question.
Hope that helps!