I agree on an idea of making teams cross-functional. However, I doubt that resources may not utilize effectively when the nature of the work varying sprint to sprint.
For example, There are database and UI experts in the team while there is not a single story in the sprint depends on UI/database.
How will these resources contribute to the sprint?