We're actually using a combination of all three of those. I think the biggest considerations are (1) what level you want to forecast the resources at, and (2) what level you need to track time at.
In IT department:
Some resources are only 50% allocated to activities that we track, so we set them to 50% participation.
We use projects to represent enhancement work...each project is for a fiscal year and a business unit. Resource forecasting is done at that level (staffing profile) but time is tracked to the individual enhancements (tasks).
We use assets for the remaining operating activities (each asset is for each application, more-or-less), but this can be limiting if you need more detailed forecasting or actuals tracking. And if you use the scenario planning features, it can be hard to fiddle with 500+ assets.