SPF returns more than pass or fail.

ResultMeaning
passSource is authorized by the evaluated policy
failPolicy explicitly says the source is not authorized
softfailWeak negative result
neutralPolicy makes no assertion
noneNo applicable SPF policy
temperrorTemporary evaluation problem
permerrorPolicy cannot be correctly evaluated

A permerror can result from malformed policy or exceeding SPF’s DNS lookup limits. Treating it as “basically a pass” defeats the point of having a policy.

Reference material