Ah, some progress! I tried to print the body of the POST request (var_export($_POST)) as debug output on the page, but since the POST request itself doesn't result in anything being shown when the PHP voting code is not exectuted, this did not work. Then I found an alternative method to detect if the PHP script is invoked by a POST request:
$update = (filter_input(INPUT_SERVER, 'REQUEST_METHOD') === 'POST');
So then $update gets set to true even when there is no "update=true" passed as parameter to the POST request generated by the "Submit vote" button. And guess what? The voting worked! I was able to submit an 'OK' vote in the test poll, so that there are now 3 votes. And I am no longer offered the possibility to vote when I open the topic: the "Submit vote" buton is gone, and the results of the poll are shown immediately (without the need for a viewpoll argument to the URL, which would be needed to see the results for those that haven't voted yet).
So it seems the only problem is that the POST request for submitting the voting vorm fails to relay the "update=Submit vote" parameter, even though an <input> element is present inside the form with name=update and value=true. (Namely the "Submit vote" button itself.) The phpBB software seems to rely on it that it does. And perhaps it does with some browsers or browser versions. Which would explain why some users were able to vote, and others not.
People are invited to vote in the poll ( http://212.114.109.12/tc/viewtopic.php?f=2&t=78124 ), to test if it now works for everyone.
(Of course a more fundamental fix still has to be found, as I am not sure that phpBB would not use POST requests to viewtopic.php that do not have a Submit button with name=update, and should trigger other actions than vote updating. These actions would now be broken, because they would all invoke the voting code.)