There's also EmbeddedPigStats which is used when Pig is running in embedded mode. It also subclasses PigStats but throws UnsupportedOperationException exceptions for most of the abstract methods it implements. We can follow the same approach with an abstract getJobClient() method.
I also don't love the ((SimplePigStats)PigStats.get()).getFoo() approach, but it's the pattern already in use in PigStatsUtil and other options didn't seem great. I'm ok with moving getJobClient it to PigStats though. That way we can at least get rid of the cast.