Calling Subject.getSubject includes a permissions check, this in itself encourages the call to be in a PrivilegedAction.

Unfortunately the call to AccessController.getCurrent() requires the opposite to prevent the AccessControlContext from being replaced.

Combining these two calls into a single utility method encourages a situation where the Subject is easily hidden or a case where wide access to the getSubject method needs to be granted so that the method will work cleanly.

Overall a utility method should make a developers life easier, in this case I believe the method is doing the opposite.