“Hmm, the logic for this thing is pretty easy, but the gotchas of the language it’s written in are a pain in the ass.”
What did I expect though, working on a stack that’s commonly used to implement things like monetary transactions. Of course there’s going to be a bunch of quirks and limitations. How else are they going to keep you on your toes? While there’s something to be said for not making things easy on people, there’s also something to be said for hard things being easy to mess up. And when you’re writing a mission-critical smart contract, you don’t want to mess up.