setFramerateLimit() affects your Window instance in order to synchronize it with the requested framerate. If you include the window with other subsystems on the same thread, then it will appear as a form of a "fixed time-step" function - however that's only because everything is on the same thread. Also, keep in mind that the time intervals are likely not to be consisted.
One of the ways to solve it is to measure the delta of time between the moment the game loop starts iteration and ends updating the subsystems. You can then place an actual sleeping function at the end of the game loop, which will check whether the delta is smaller than the fixed time-step you wish to have - if it is, the function should only sleep for the remainder of the time required to "catch-up" with your time-step.