Some of the non-precision approaches have a stepdown fix after the final approach fix. My understanding of a stepdown fix with an altitude restriction is that it is to keep you clear of obstacles before continuing your descent right? However, why does it so happen that some stepdown fixes are after the final approach fix rather than let the final approach fix be the "stepdown" fix of an approach?
Take a look at KPRB VOR Rwy 19:
There is a stepdown fix after the final approach fix. Now look at the terrain around the airport. You can see a bunch of small hills around the FAF. In order to provide adequate terrain separation and get you low enough to land, they need a stepdown. You can also see this on lots of non-precision approaches where the approach minimum is lower if you can identify a point past the FAF.
If you are interested in how they decide to include a stepdown fix, check out FAA Order 8260.3C TERPS, Section 2-6. Final Approach. Lots of formulas but the gist of it is they have a required obstacle clearance that must be met and maximum descent angles. Sometimes they need a stepdown fix in order to make the approach work.
To address the part of the question
why does it so happen that some stepdown fixes are after the final approach fix rather than let the final approach fix be the "stepdown" fix of an approach?
The answer there is, the final approach segment (FAS), defined as the final approach fix (or, on glideslope at glideslope intercept altitude, for an ILS) to the missed approach point, has to be a certain length, and if the stepdown fix were made into the FAF, the FAS wouldn't be long enough.
In the chart that JScarry posted for KPRB, the FAS is 6 miles long, which is fairly typical. The distance from the stepdown fix to the MAP is 3.7 miles, which is awfully short -- probably too short to be approved without some strange waiver. The "interior stepdown" ends up being the better solution for the approach designers.