I will be probably be warned against using parentheses, etc. in field names, but as mentioned, this used to work in versions prior to version 5.4.0. Also, according to https://tiddlywiki.com/#TiddlerFields field names may contain any combination of characters.
(Luckily, when I wrote my music player, I also wrote some simple metadata tools for editing (copying, deleting, setting, etc.) fields in (filtered) lists of tiddlers.)
Is it possible that this new behaviour is caused by the addition in v5.4.0 of new syntax, in particular parentheses, for multi-valued variables?
Yes and no, the characters available were expanded to include most characters some time ago.
It does make sense with the introduction of Multi-valued variables this may have side effects in filters, hopefully this will be addressed in 5.4.1 but I would also like to propose a workaround and a better design pattern. Your use is a particularly difficult because you are accepting manual input, and using this in a filter.
I started to work though providing you a work around and tips until this is resolved, but there is a few complications, that can be overcome. However it makes answering a chore. So if you ask I can give some tips, but until then I will put it aside.
Just one tip - why not accept _cd-work(s) and suit as separate values and compose the filter to be used through the use of backtick attributes?
The example shown was part of a more complex filter for searching CDs.
I replaced _cd-work(s) with _cd-works (and similarly renamed other fields whose names contained parentheses) using tools I wrote at the time to simplify metadata editing: