I'm not sure if the assumption is right here, that getTestClass() is right here. There were no issues, because the method was never used outside the BlockJUnit4ClassRunner and, therefore, target is always equals to the instance created by createTest, which is and instance of the class returned by getTestClass().getJavaClass(). But when called with another target, this is simply not true, and the invocation would fail, as the methods returns by getTestClass().getAnnotatedMethods(Test.class) cannot be called on the target. Therefore, the change is more or less a bugfix, in my point of view.

Long story short: This place does not assume that they are equal, but all places that call withBefores and withAfters do. I found just one place where these are called and that is within the method methodBlock. So I think we are fine here.