How to avoid multiple SELECTs from a bag of properties table?￼
Why not return the properties as key/value pairs wrapped in a single JSON value? 

select jsonb_object_agg("key", value)
from settings 
where "key" in ('prop1','prop2');


That can easily be wrapped into a function: 

create or replace function get_properties(VARIADIC p_keys text[])
  returns jsonb
as
$$
  select jsonb_object_agg("key", value)
  from settings s
  where "key" = any(p_keys);
$$
language sql;


Then you can use

select get_properties('prop1','prop2');


Or if you do need it as columns:

select t.props -&gt;&gt; 'prop1' as prop1, 
       t.props -&gt;&gt; 'prop2' as prop2
from get_properties('prop1','prop2') as t(props);