Boulder's ACME v2 API does implement the boolean termsOfServiceAgreed field as described here. The V1 API continues to use the legacy method of requiring the URL of the TOS being agreed to be sent to the server.
So we can’t simulate the ToS changing? Well, I suppose if this has no effect on Certbot after registration, then it doesn’t matter.
Is there a chance of this behaviour changing in V1? Our release cycles are quite long, so we will be using V1 for a few years at least. If the LetEncrypt server changes it mind and decides it requires re-acceptance of the ToS once they have changed, we are in trouble.
I think our legal team is worried that the ToS could theoretically be changed to include e.g. a statement that declares that usage of this service entitles LetsEncrypt to 10% of your global revenue.
Hence accepting the current ToS and all future versions makes them nervous.
Section 5.6 of the agreement outlines how we would notify you of changes. It wouldn’t be a silent change that you have no chance to vet:
ISRG may modify this Agreement from time to time. Each modified version of this Agreement will be
posted to ISRG’s Let’s Encrypt website (letsencrypt.org) at least fourteen (14) days before it becomes
effective. If such new version contains material changes and You have provided ISRG with an email
address, ISRG will send an email to such address notifying You of such new version at least fourteen (14)
days before it becomes effective. In addition, major changes will be flagged with a new Subscriber
Agreement version number in the ACME protocol, so You may be able to configure Your ACME Client
Software to notify You of such changes.