Are constraints on the number of assets in the portfolio and the number of assets traded really useful?
When generating random portfolios, these constraints are fairly typically what you actually want. In optimization they are often really just a convenient shortcut for threshold constraints. A threshold constraint says that a trade or a portfolio position needs to be of at least a certain size if it exists at all. So, yes they are useful but imposing threshold constraints might be what you really mean.