What are the common use cases for this scenario?
Not just php either. Ruby/Rails Active Record, for example, supports it.
And I imagine dynamic, variable bound table names are probably in every ORM in just about every language.
Another scenario I just thought of: your schema is more or less dynamic. For example, Drupal lets developers/site administrators create entities with custom fields, each field gets its own DB table, and to load an entity you need to
SELECT * FROM node
LEFT OUTER JOIN field_data_field_name_1 ON ..
LEFT OUTER JOIN field_data_field_name_2 ON ..
...