ad 1) yes, of course
ad 2) if you expect and can live with all the pitfalls of C-style "strings" plz do so, but that is ill-adviced if you have the luxury of using Pascal strings.
program silly;
{$mode objfpc}{$H+}
var
s:string ='hello,'#0'world';
begin
writeln(pchar(s));// silly C-style
writeln(s); // proper pascal style
end.
Also note the difference between strlen() and length().
Good luck with your curly bracket strings

FreePascal fully supports C-style strings, but really, you do not want to use them unless you need to interface with C-style code.
In the case of AVR I would advise to use the Pascal shortstring format. (like I do)
I guess most will agree about that, it is hardly worth a discussion.
(note that in the pool of forum users, the sub-pool of avr users is quite small and there is a very big risk that users w/o avr experience will respond with utter nonsense)
The implicit point you make is about floats: depending on the avr type that depends.
I would use a scaled integer type for hardware starved avr's, but simply floats(single or double) on more modern avr's.
Can you mention a bottom line model?