get_first_type(::Type{T}) where T <: Tuple = begin
fieldtypes(T)[1]
end
If another function calls this function with one of its input type parameters, will this function be computed at compile time since all required information is known (or fail to compile if the tuple type is empty)?
Similarly if one is to use typeof() within a function on one of the function arguments is the call resolved at compile time since the compiler should know the types of all arguments already?
Generally yes. The compiler is allowed to give up and compute things at run time, but in your example, yes it should generally be done at compile time. You can check what code it is optimizing to by running test cases like