if global mutable comptime state existed your code could depend on the order zig evaluates things, a small refactor could drastically change the output of your program (assuming the output depends on the comptime state)
Yeah, a field with a comptime only type makes the struct comptime only, and a comptime only return type makes the function implicitly comptime.
Note that even if all the function inputs are comptime only, or annotated with comptime, if the return type can be runtime then the function will not implicitly run at comptime.