Yes, it is a performance benefit to use unbound expressions whenever possible. From the release notes:
Use the {#expression}
syntax for unbound expressions when you pass an
expression from a parent component to a child component, unless you
require bidirectional data binding. Bound expressions with
{!expression}
create a bidirectional data binding that’s expensive for
performance. Bound expressions can also create hard-to-debug errors
due to the propagation of data changes through nested components.
In this case, using the unbound expression syntax will result in a shorter rendering cycle. Note that, as you've written in your example code, the items
parameter must be a bound expression or the list can't be updated.