Do symmetric discrete signals have zero phase?
Assuming you are referring to the standard definitions of odd and even symmetry, i.e.
\begin{align}
\text{even: }&amp;&amp; x[-n] &amp;= x[n] \\ 
\text{odd: }&amp;&amp;x[-n] &amp;= -x[n]
\end{align}
then it still holds that the DFT of an even sequence is real (i.e. the phase is 0 or $\pi$) and the DFT of an odd sequence is imaginary (i.e. the phase is $\pi/2$ or $-\pi/2$).
This is independent of whether the the length of the sequence is even or odd as long as the sequence meets the definition of symmetry. This implies that for odd sequences $x[0]$ must be $0$ and for odd sequences of even length $x[N/2]$ must be zero too, where $N$ is the DFT length.
Both sequences that you show in your original question are not &quot;symmetric&quot; in the mathematical sense. They are only symmetric when properly time shifted and time shifting is clearly a non zero-phase operation.
The following Matlab script illustrates that this is true within the numerical accuracy of double precision math:
%% script to confirm zero phase DFT of even/odd symmetric sequences

N = 128; % FFT length

%% Even length sequences

% create a random sequence of length N/2+1
x = randn(N/2+1, 1);

% create even version
xEven = [x; x(end-1:-1:2)];

%  perform DFT and check zero phase
fx = fft(xEven);
zeroPhaseError = 10 * log10(sum(imag(fx).^2) / sum(abs(fx).^2));
fprintf('Even symmetry, Even length: zero phase error = %6.2fdB\n', zeroPhaseError);

%% Odd length sequences

% create odd symmetry version. This requires the samples at n=0 and n=N/2 to be
% zero
xOdd = [0; x(2:end-1); 0 ; -x(end-1:-1:2)];
%  check zero phase
fx = fft(xOdd);
zeroPhaseError = 10 * log10(sum(real(fx).^2) / sum(abs(fx).^2));
fprintf('Odd Symmetry, Even Length: imaginary phase error = %6.2fdB\n', zeroPhaseError);

%% now try an odd length sequence
% create a random sequence of length N/2
x = randn(N/2, 1);

% create even symmetry version
xEven = [x; x(end:-1:2)];

%  check zero phase
fx = fft(xEven);
zeroPhaseError = 10 * log10(sum(imag(fx).^2) / sum(abs(fx).^2));
fprintf('Even symetry, odd length: zero phase error = %6.2fdB\n', zeroPhaseError);

% create odd symmetry version. This requires the samples at n=0 to be zero.
% There is no sample at n=N/2 since that's not an integer.
xOdd = [0; x(2:end); -x(end:-1:2)];
%  check zero phase
fx = fft(xOdd);
zeroPhaseError = 10 * log10(sum(real(fx).^2) / sum(abs(fx).^2));
fprintf('Odd symmetry, odd length: imaginary phase error = %6.2fdB\n', zeroPhaseError);