Well, that is actually a limitation in its previous version, where report embeds are limited to a single filter expression only.
You can get the support for multiple filters and even other client-side commands with its new release of 2.0.0. With this release, you can even get and set filters at report scope and page scope, but I'm guessing the visual scope is still a few more upgrades away.
Check this out if you wish to understand how the SDK can be used to apply filters: https://github.com/Microsoft/PowerBI-JavaScript/wiki/Filters
And, check this out for setting filters during load: https://github.com/Microsoft/PowerBI-JavaScript/wiki/Embed-Configuration-Details
Or this, to check out a demonstration on using filters: https://microsoft.github.io/PowerBI-JavaScript/demo/filters.html
FYI - If you want to make the filters you apply more secure so that clients are unable to modify it, use RLS on the report, and then add the username and the role claims to your JWT token if required. Doing this will ensure that requests to view the report with this token will only show data for allowed user or role.
And, The OData $filter parameter only extends supports for a small subset of filter capabilities. To support more complex values or conditions, it is better to construct filter objects using the SDK.