Question regarding true use cases for the 2 different syntaxes for writing choices

Hi @cohen.avraham, take a look at What's the difference between controller first and choice first? for the differences as well as a link to a blogpost that shows some examples of where they matter.

I recommend to always stick with the choice first syntax. The controller … can syntax will be deprecated in the next release.

As for your second question, this will definitely not cause a compile error. It can cause a runtime error if the contract is not visible to you. However, being an observer is not the only reason why a contract might be visible to you. You can observe it via divulgence or more likely, you might be using a multi-party submission with a party in readAs that can see the contract but is different from the controller

1 Like