Functions (and Actions) have a complicated set of attributes, some of which don't really specify the function but rather is used for optimizations around when/how it needs to be advertised. In particular, IsAlwaysBindable is an attribute that serialization may use to omit functions from the payload if they are always bindable and can be called following convention. Such information is better suited to an annotation than an attribute.