https://github.com/raysan5/raylib/blob/master/parser/output/...
In the case of ((rot triangle) base-box) it's the same thing. (rot triangle) is evaluated to produce a function (or function-like object), just like it would be in any other position of the compound form. Then the argument base-box is applied to that.
In Lisp-2 dialects like Common Lisp and Emacs Lisp, the operator position isn't evaluated as an expression. If you need that, a function must be used like funcall: (funcall (rot triangle) base-box).
Lisp-2 dialects are clunky for programming with higher order functions due to the need to use a special operator like function to access the function namespace: (mapcar (function cons) list1 list2) instead of just (mapcar cons list1 list2) and due to the use of the funcall function. However, experience shows that people can write large projects in Lisp-2 dialects without requiring the complexity of a hygienic macro system.
[1] https://archives.haskell.org/projects.haskell.org/diagrams/