Function executes faster without STRICT modifier?
Maybe an overhead from the repeated function call that is streamlined away by inlining the function?
That's what I'd guess. You've got a very simple expression there. An actual function-call presumably involves stack setup, passing parameters etc.
The test below gives run-times of 5ms for inlined and 50ms for strict.
BEGIN;
CREATE SCHEMA f;
SET search_path = f;
CREATE FUNCTION f1(int) RETURNS int AS $$SELECT 1$$ LANGUAGE SQL;
CREATE FUNCTION f2(int) RETURNS int AS $$SELECT 1$$ LANGUAGE SQL STRICT;
\timing on
SELECT sum(f1(i)) FROM generate_series(1,10000) i;
SELECT sum(f2(i)) FROM generate_series(1,10000) i;
\timing off
ROLLBACK;