In reply to jabreen:
All hierarchical references get resolved before run-time. Hierarchical names a searched first in the declaration scope defined in section 23.7, and then upward references use the instance scope defined in section 23.8 in the 1800-2012 LRM.
The original example should have found wb_bfm by looking in the enclosing declaration scope as defined in 23.7. That worked for me.
Your “fix” works because 23.8 has it looking in the instantiating parents scope.
A problem that I’ve seen with nested interface declarations is when you try to make a virtual interface out of it. The interface name is only visible to the enclosing scope. If you try to create a class n a package, the interface name is not visible.