In general if I see a GCC error I consider that a bug in the Nim compiler, not in my code. (Unles I'm lying to the compiler that imaginary functions exist, then it's my fault) but relying on a GCC error for a Nim feature would be very poor imho.
Ignoring the distraction of interop, your use case might point to a way to mitigate @Araqs concern. If a dot operator is sugar for the creation of a proc plus it's invocation, (nonanonymous lambda? notorious lambda?) wouldn't that satisfy the requirement that "`obj.f` exist at runtime