Does @os_run_priority in sp_add_jobstep actually work in SQL Server 2008 R2? Does @os_run_priority in sp_add_jobstep actually work, in SQL Server 2008 R2? 

It is described as "reserved" or "undocumented". However, I see it in the sp_add_jobstep definition:

@os_run_priority INT = 0, -- -15 = Idle, -1 = Below Normal, 0 = Normal, 1 = Above Normal, 15 = Time Critical)
This is part of the job step definition and you may even see it have values used or defined in other areas.

After taking a look in the source code (I work at Microsoft and have access), while the value is indeed passed as part of the job step information sent to each subsystem, I couldn't find a place that actually set the value as part of the job step execution. There are, however, threads that do run in different priority levels as part of SQL Server Agent and those threads may or may not help with job step functionality or subsystems that fill a specific role.

While I didn't do an exhaustive check, it would be a safe best to assume this value is - as described - "reserved". Just because it doesn't seem to be used doesn't mean it can't be at any other point as the plumbing exists.