thank you for having pointed out these design problems. Some functions (like getBeanNameOfClass) were exactly the same both in APFVF and SBL. I've refactored them in order to remove code replication.
Now APFVF is responsible of retrieving bean name according to its annotation or type. SBL is responsible of accessing bean details like singleton nature or bean name.
Let me know if you think we can further decouple APFVF and SBL.
PS: patch includes also e little fix for method getBean(Class<T> requiredType) of class ApplicationContextMock.