Looking at the JSBSim source, you cannot simply use tables for whatever parameter you want inside the engine config files, as JSBSim expects single values for the vast majority. For piston engines, the only tables that are accepted in the config file seem to be named COMBUSTION and MIXTURE (
see source).
However, the volumetric-efficiency parameter appears to be exposed on the property tree, so you can adjust it at run-time. This should be done outside the engine config file though, for example in a system file, like S&J hinted at.
To explain why your example engine works the way it does: it's a turbine engine, for which IdleThrust and MilThrust are explicitly defined as tables in the
source code (together with AugThrust, Injection, N1SpoolUp, N1SpoolDown, N2SpoolUp and N2SpoolDown). Note that there is also a <milthrust> value, but that is used differently in the calculations and is indeed expected to be a single value (not a table). See how both that one and the table are there in the JT15D-4: the table does not replace the single value, it augments it.