Before namespaces, a dataset name name translated as is into a table name.
With namespaces, there is an additional layer of TableId, but really, the only way that the TableId can be constructed is via DatasetSpecification#getName
The reason for this is the choice made to not have namespace in DatasetSpecification, which is still ok, but we should have a wrapper around DatasetSpecification for internal use that combines DatasetSpecification and Id.DatasetInstance.
DatasetAdmin classes should receive this wrapper instead of just getting DatasetSpecification.
This would involve a fair amount of changes to admin classes, etc, so it may not be advisable to do this for 2.8.0. However, we should certainly fix this for 3.0.0, since it enforces restrictions on dataset instance names (they must start with cdap.[namespace-id]