You could use cflow although that is very slow since it would need to create an exception to inspect the stack when you call getAddress() or getStree()
Your suggestion is to use cflow intercepting all join points in the control flow of all methods. Inside the advice, trigger an exception (and catch) and examine the stack. Correct?
But in the stack of the exception will dont show any reference to the method getPerson(), because getAddress() and getStreet() are called outside.
In that case, there is no pointcut syntax construct to support what you're trying to do.
I've also come to this conclusion.
So, I developed a preprocessor that identifies the jointpoints and applies the Aspect code. In my project, this preprocessor works like a static weaver.
In a next phase, would be interesting develope a parser capable of support a pointcut syntax like "withincodestatement() "